git如何撤消Merge分支' master'回购开发分公司

时间:2015-04-09 06:46:06

标签: git git-branch

我正在使用开发分支并进行提交。

然后,我应该做一个git pull origin develop - 而不是我不小心做了git pull origin master

然后,我看到了这条消息Merge branch 'master' of repo into develop branch

无论如何我可以撤消这个吗?

1 个答案:

答案 0 :(得分:2)

重置合并提交:

git reset --hard HEAD~

再拉一次

git pull origin develop

PS:我假设您的develop分支实际指向合并提交。

修改

  

如果我这样做,我会放弃在开发分支中提交的提交吗?没有权利 ?

提交将不再被引用,但它仍然存在。 Git会在一段时间内保持无法访问的提交。默认值为90天。见git gc

  

可以设置可选配置变量gc.reflogExpire,以指示每个分支的reflog中的历史条目在此存储库中保持可用的时间。该设置表示为时间长度,例如90天或3个月。 默认为90天

因此,在此期间您可以恢复提交,但您必须知道它的ID。您可以在reflog中找到ID,如果它尚未过期,或者只是将其保存在某处。

如果您对此感觉不舒服,您可以在执行develop之前创建一个指向git reset --hard分支实际提交的本地分支。在这种情况下,本地备份分支将引用提交,git gc不会删除它(因为它被引用)。 E.g。

git branch backup/develop
git reset --hard HEAD~

如果你现在想的话:"哦,不,我想回去"。只是做

git reset --hard backup/develop

否则删除本地备份分支

git branch -D backup/develop