git 如何撤消将存储库的分支'master'合并到开发分支中



我正在开发分支,并进行了提交。

然后,我本应该做一个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

最新更新