gpt4 book ai didi

Git merge ,然后还原,然后还原还原

转载 作者:太空狗 更新时间:2023-10-29 13:02:34 25 4
gpt4 key购买 nike

所以我们让一个 git 分支进入了一个棘手的状态:

两个分支:

* master
* other_branch

上周有人不小心将 other_branch(过早地) merge 到 master 上并推送到 origin。我们注意到了这个错误,我天真地犯了错误

git revert bad_merge_commit

“解决”问题。一切看起来都很好,我们继续我们的生活......

今天我们尝试将 master merge 到 other_branch 中,作为将 other_branch merge 到 master 中的一步。但我的回归似乎造成了一场噩梦。当 master merge 到 other_branch 时,other_branch 上的所有(大部分?)工作都会被删除。我认为这是因为我的还原指示还原所有旧的提交。

当然,在我的恢复之上,现在有很多天对 master 的提交,所以理清这看起来可能很困难。

有什么方法可以修复损坏吗?我是否可以提出一些 rebase 参数并删除两个有问题的提交?

非常感谢!

[更新 - 根据要求添加当前状态的详细信息]

other_branch 很久以前就从 master 分支出来了。我们的标准做法是将 master 重复 merge 到 other_branch 中,以尽量减少冲突的累积(有时我们会 rebase ,但在这种情况下不会)。

master commits A | B | C | BAD_MERGE [other_branch_@S] | REVERT_OF_BAD | D | E | F ... HEAD

other_branch commits P | Q | R | S [BAD_MERGE_FROM_HERE] | T | U | V ... HEAD

尝试将主 HEAD merge 到 other_branch HEAD 会导致问题。

Charles,我目前正在尝试使用您在此处建议的解决方案来修复 master 的副本:How to remove selected commit log entries from a Git repository while keeping their changes? .

[/更新]

最佳答案

是的,问题是还原取消了 merge 引入的更改,但不是 merge 本身。我认为 https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.html 的附录部分描述了一个可能的解决方案。

这个文档也是 Git 的一部分,在 Debian 下你会在 /usr/share/doc/git-doc/howto/revert-a-faulty-merge.txt 找到它

关于Git merge ,然后还原,然后还原还原,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5414297/

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