gpt4 book ai didi

git - merge 了两个 Git 分支,推送到服务器上,现在如何取消 merge 它们

转载 作者:太空狗 更新时间:2023-10-29 14:39:36 27 4
gpt4 key购买 nike

我的代码在 master 分支,然后还有另一个名为 dev 的分支,dev 比我的 master 分支提前了几个提交,在 merge 之前我什至做了一个 master 分支备份 'master-backup'。

然后我将 dev merge 到 master,并将 merge 的 master 分支推送到服务器(git push origin master)。

所以现在我的 git 日志看起来像这样

提交 5(已经在 master 中)

提交 4(来自开发分支)

提交 3(来自开发分支)

提交 2(已经在 master 中)

提交 1(来自开发)

其余提交已经在两个分支中

上面是场景,现在我遇到的问题是我想从 master 中删除 dev 分支提交,我想要我的旧 master 分支回来,即无论 master-backup 中有什么,我都想要 master 中的提交

我该怎么做?由于 dev 混合提交已经 merge 到 master 并被推送,我该如何删除 dev 分支并让我的 master 恢复原样?

最佳答案

听起来,为了立即解决问题,您可以将服务器上的 master 替换为 master-backup:

git push --force origin master-backup:master

对于稍长的答案,您有两种选择。最简单的方法是使用 git-reset,但是你应该只有没有其他人看到这个分支时才这样做,否则你会毁了她的一天.

一次提交前的 master 版本称为 master^。所以首先使用 git log master^绝对确定它是你想要保留的版本,然后用 master check out :

git reset --hard master^

然后在您的服务器上更新:

git push --force origin master

您的第二个选择是仅使用 git revert HEAD 进行新提交以撤消 merge 中的所有更改,然后将其推送。但是那有 unexpected consequences如果您以后尝试再次 merge 。

关于git - merge 了两个 Git 分支,推送到服务器上,现在如何取消 merge 它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14386532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com