gpt4 book ai didi

git - 如何在不使用 reset 的情况下撤消 git 中的快进 merge

转载 作者:太空狗 更新时间:2023-10-29 14:44:18 25 4
gpt4 key购买 nike

想象一下这个场景:

master:            M
release-candidate: \ A--B'--C'
feature-A: \-A-/ / /
feature-B: \-B--/ /
feature-C: \--C---/

候选版本是使用以下命令创建的:

git co master
git co -b release-candidate
git merge feature-A (FAST FORWARD)
git merge feature-B (REGULAR MERGE)
git merge feature-C (REGULAR MERGE)

假设在我们的预发布测试期间,我们发现了功能 A 的问题。我们如何撤消将此功能分支快速 merge 到发布候选分支所引入的更改?

我们可能会将候选版本重置回其主状态并再次开始 merge 所有有效功能,但这将意味着重复大量的 merge 冲突解决并引入错误的可能性。

另请注意,我只在每个功能分支上展示了一个提交,但解决方案应该适用于有多个提交要撤消的情况。

最佳答案

因为你不想重写已发布的历史,git revert 是你的 friend 。

在这种情况下:

git revert M..A -n
git commit -m "revert feature-A"

如果你想在一次提交中恢复,或者

git revert M..A

如果您想以相反的顺序对每个原始提交进行一次还原提交。

关于git - 如何在不使用 reset 的情况下撤消 git 中的快进 merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37118397/

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