2012-03-26 69 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

相关问题