2012-03-26 12 views
7

は、私は次のようにgitのコミットしていると仮定します。Gitで最後のコミットを一時的に削除するには?

  1. aaaaaa
  2. bbbbbb
  3. cccccc(最新)は

私はbbbbbbに戻って、そこから開発を続けていきたいと思います。基本的にはccccccは今のところであり、今後はそれを取り戻すことができます(まだ私はccccccが必要です)。 ccccccを元に戻すか、bbbbbbにロールバックする必要がありますか?

+0

これは民間のgitリポジトリのためです:あなたはCCCCCを使用してに戻したいときは、のいずれかを行うことができます。 – moey

答えて

7

だけで実行します。

git checkout -b dev_on_b bbbbbbb 

のみCCCCCCで枝を残して、あなたにBBBBBBから始まる新しいブランチを与えるであろう。

git merge branch_with_cccccc   # bring cccccc into dev_on_b 

または

git checkout branch_with_ccccc 
1

正しい解決策は、これが公開されているgitリポジトリかどうかによって異なります。

このコマンドを使用すると、git revert HEAD^は(2)に戻りますが、正しいことがあります。

ただし、(4)を実行した後に(3)に戻ってから、再度コミットするときに変更をマージする必要があります。

あなたはそれがさまざまな状況に基づいて、さまざまなオプションを議論するように、このを見てみたいことがあり

http://book.git-scm.com/4_undoing_in_git_-_reset,_checkout_and_revert.html

+0

ポインタをありがとう。それは実際にプライベートレポのためのもので、プライベートな貢献者がいくつかあります。 – moey

8

ただCCCCCCがある場合はこれをしない、もちろん

git branch for_later 
git reset --hard bbbbbb 

行いますすでにプッシュされています。その場合は、復帰を使用してください。

+0

あなたはgithubにプッシュされたのですか? – moey

+0

@ Siku-Siku.Com - はい、他の中央リポジトリと共有 – manojlds