2016年1月12日火曜日

gitで初回コミットを取り消す

コミットの粒度を考えずにサーバー上で勢いで大量にコミットしてしまったので、
ちゃんと細かく分けようとしてそのコミットを取り消そうとしたら、
最初のコミットだったのでgit resetで取り消せなくて困ったので調べました

消したいのはこのコミットです
$ git log
commit 9b5b12136372fe28ed73fec13df1268b58370d6c
Author: EC2 Default User 
Date:   Thu Dec 10 03:03:39 2015 +0000

    ssh経由でのテスト挙動確認

パッと思いつく限りの直前のコミットを取り消すコマンドを実行したのですが、
すべてエラーになったり消せなかったりしました。
$ git reset 9b5b12136372fe28ed73fec13df1268b58370d6c
$ git log
commit 9b5b12136372fe28ed73fec13df1268b58370d6c
Author: EC2 Default User 
Date:   Thu Dec 10 03:03:39 2015 +0000

$ git reset HEAD^
fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git  [...] -- [...]'

$ git reset --soft
$ git log
commit 9b5b12136372fe28ed73fec13df1268b58370d6c
Author: EC2 Default User 
Date:   Thu Dec 10 03:03:39 2015 +0000

$ git reset --soft HEAD^
fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git  [...] -- [...]'

調べたところ、このコマンドで初回コミットでもちゃんと消せるようです。
$ git update-ref -d HEAD

$ git log
fatal: bad default revision 'HEAD'


参考URL
http://suzuken.hatenablog.jp/entry/2014/03/28/100311

0 件のコメント:

コメントを投稿