2012-03-26 68 views
7

假設我有以下的git承諾:如何暫時刪除最後一次提交與Git?

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

我想回去bbbbbb,並從那裏繼續發展。本質上,我想刪除cccccc現在,並能夠在未來檢索它(我知道我仍然需要cccccc)。我應該回復cccccc還是回滾到bbbbbb

+0

這是一個私人的Git倉庫。 – moey 2012-03-26 01:14:43

回答

7

只要做到:

git checkout -b dev_on_b bbbbbbb 

將獨自留下CCCCCC分支,給你一個新的分支從開始BBBBBB。當你想重新使用CCCCC您可以執行的:

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 2012-03-26 01:01:47

8

只是做

git branch for_later 
git reset --hard bbbbbb 

當然,不這樣做,如果CCCCCC是已經推了。在這種情況下,請使用還原。

+0

你的意思是推到github上? – moey 2012-03-26 01:15:33

+0

@ Siku-Siku.Com - 是的,任何中央回購分享給他人 – manojlds 2012-03-26 04:35:58

相關問題