先日会社でGitのコミットが消えた!!と相談されました。
どんな操作をしたのか聞いたのですが、コマンドではなくGUIのツールを使っていて、何となく操作をしていたらしく、何をしたのかよくわかりませんでした。
ちょっと無理かなーと思っていたのですが、消えたコミットを探すことができました。
## 消えたコミットを探す
Gitには過去のコミットを参照するreflogというコマンドがあります。
```bash
`gutter:false;
$ git reflog
a234c5a (HEAD -> master) HEAD@{0}: commit: Use Markov to unmo
0668e42 HEAD@{1}: commit: Append markov
aa395f8 HEAD@{2}: commit: Append TemplateResponder
02f94e4 HEAD@{3}: commit (initial): Initial commit
```
ここをよく見ると、消えたと行っていたコミットがありました。
その位置まで戻してデータをサルベージすることができました。
具体的には、該当するコミットのハッシュでcheckoutしてデータを持ってきて、HEADにマージしました。
```bash
`gutter:false;
$ git checkout aa395f8
```
no branchになったりしますが、データ取りたいだけなのでデータをとったら元のブランチに戻ればOK
なんとなく使っていると危険です。
困った時は「git reflog」覚えておくといざという時に助かります。
0 件のコメント :
コメントを投稿