我正在使用开发分支并进行提交。
然后,我应该做一个git pull origin develop
- 而不是我不小心做了git pull origin master
然后,我看到了这条消息Merge branch 'master' of repo into develop branch
无论如何我可以撤消这个吗?
答案 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