2009-05-31

Git で no branch に commit した時の対処法

Git で、branch を理解・把握せずに動いていると、どのブランチに所属もしていない状況で commit してしまうことがある。いわゆる (no branch) でのトラブル。この時、commit 分は git リポジトリーに登録されているけど、そのコミット・ログを読むブランチがないので、その変更分を正規のブランチから確認できなくなってしまう。

こういう時は、master に戻った後、hash 値を参考にして merge してやる。

実行例

$ git branch
* (no branch)
  master

commit した先のブランチが (no branch)。

$ git checkout master
Previous HEAD position was 9a5e01d... Hoge Hoge Commit Log
Switched to branch "master"

master ブランチに checkout コマンドで戻ると、(no branch) の最新 HEAD の hash 値が表示される。この hash 値を使って、master ブランチに git merge する。

$ git merge 9a5e01d

これで、迷子になった commit 9a5e01d... が master に戻って来た。メデタシ、メデタシ。

No comments:

Post a Comment