我正在开发分支,并进行了提交。
然后,我本应该做一个git pull origin develop
,但我不小心做了这个git pull origin master
然后,我看到了这条消息Merge branch 'master' of repo into develop branch
有什么我可以撤消的吗?
重置合并提交:
git reset --hard HEAD~
并再次拉动
git pull origin develop
PS:我假设您的develop
分支实际指向合并提交。
编辑
如果我这样做,我会释放开发分支中的提交吗?不,对吧?
提交将不再被引用,但它仍然存在。Git将暂时保留无法访问的提交。默认值为90天。参见git-gc-
可选配置变量gc.reflogExpire可以设置为指示每个分支的reflog中的历史条目在此存储库中应保持可用的时间。设置表示为时间长度,例如90天或3个月默认为90天。
所以在这段时间内,你可以恢复提交,但你必须知道它的id。如果id还没有过期,你可以在reflog中找到它,或者把它保存在某个地方。
如果您对此不满意,您可以在执行git reset --hard
之前创建一个指向develop
分支的实际提交的本地分支。在这种情况下,本地备份分支将引用提交,git-gc不会删除它(因为它被引用了)。例如
git branch backup/develop
git reset --hard HEAD~
如果你现在想:"哦,不,我想回去"。只做
git reset --hard backup/develop
否则删除本地备份分支
git branch -D backup/develop