ラベル git の投稿を表示しています。 すべての投稿を表示
ラベル git の投稿を表示しています。 すべての投稿を表示

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

2015年3月18日水曜日

gitでリモートブランチを削除する

gitのリモートブランチを消すことがあるのですが、
やろうとするといつもやり方忘れて調べてるのでここにメモ。

まずはローカルのブランチの削除
$ git branch -d test
Deleted branch test (was 927001f).

ローカルのブランチ削除でエラー出るときは強制的に削除
$ git branch -d test
error: The branch 'test' is not fully merged.
If you are sure you want to delete it, run 'git branch -D test'.
 
$ git branch -D test
Deleted branch test (was 5c0b0be).

続いてリモートブランチの削除。
調べてみたらいくつかやり方があるみたいです。
$ git push origin :test
To git@github.com:syakasyaka/sample.git
 - [deleted]         test

git1.7.0以降からはこちらも使える。
$ git push --delete origin test
To git@github.com:syakasyaka/sample.git
 - [deleted]         test
直感的には後者のやつの方がわかりやすいですね。


参考URL
http://shoma2da.hatenablog.com/entry/2014/03/08/234523
http://blog.koogawa.com/entry/2014/03/08/121751
http://www.backlog.jp/git-guide/reference/remote.html
http://hail2u.net/blog/software/git-push-delete.html