一段时间后撤消合并,会发生什么?
Undo a merge after time, what happens?
如何撤消已推送但后来被分支的合并?回购会发生什么?
之前曾以不同的形式问过这个问题,但我不确定是否有任何答案解释了之后发生的事情。
假设这是 repo 的状态:
A--B--C---------G--H
\ / \
D--E--F I--J
阅读几个答案后,我认为我应该 git 恢复?在 G?或者git重置?
如果我在 FG 合并上执行 git 重置或 git 还原,H、I、J 代码会发生什么情况,它可能会使用一些已合并的代码?
我仍然对使用 git 的更高级功能一窍不通:/
Edit1: 我应该指出这不是 public 回购。所有分支都由一个小型内部团队维护。
What i want is to undo the merge and continue working on the DEF branch
Undoing a merge through a revert 是一种至少不改变主分支历史的方法
git revert -m 1 G
并且您可以在不知道合并的分支 DEF
n 上继续:您可以添加新的提交并稍后合并。
但是,作为 by lucash, 不会重新应用来自提交 D
、E
和 F
的更改,而只会合并新的提交来自该分支,很可能由于 DEF
分支中已知的缺失更改而导致问题。
因此,在合并分支之前,您需要首先还原 revert-commit(git revert -m 1 G
的结果)以避免该问题。
IJK
可以保留在 H
:还原会取消 G
引入的更改,并且不会影响 H
。
另一个,我相信更简单的方法来完成你想要的是从提交 "F" 创建一个新分支。继续对 D E F 系列进行更改。然后合并回您的 "main" 分支(从 A B C 开始)。到那时,无论谁在工作,我都不会得到您的更改,您也不会影响它们。但是他们可以随时将 I J 合并到 A B C 而不会影响你。
还原可能会很混乱。特别是恢复合并。之前的答案是正确的,您将不得不还原还原,或者在完成更改后挑选还原的合并。如果您的更改触及已恢复的文件,您可能会遇到混乱的合并。 :(
如果其他人想要创建一个分支并在没有您的 DEF 更改的情况下工作,只需让他们从 C 分支,进行更改并在完成后合并。在你完成之前或之后合并都没有关系。
我的建议可能会失败的地方是,如果 I J 已完成,并准备好推向生产,而 D E F 尚未完成。然后,还原确实成为不幸的必要。 :(
祝你好运!
如何撤消已推送但后来被分支的合并?回购会发生什么?
之前曾以不同的形式问过这个问题,但我不确定是否有任何答案解释了之后发生的事情。
假设这是 repo 的状态:
A--B--C---------G--H
\ / \
D--E--F I--J
阅读几个答案后,我认为我应该 git 恢复?在 G?或者git重置?
如果我在 FG 合并上执行 git 重置或 git 还原,H、I、J 代码会发生什么情况,它可能会使用一些已合并的代码?
我仍然对使用 git 的更高级功能一窍不通:/
Edit1: 我应该指出这不是 public 回购。所有分支都由一个小型内部团队维护。
What i want is to undo the merge and continue working on the DEF branch
Undoing a merge through a revert 是一种至少不改变主分支历史的方法
git revert -m 1 G
并且您可以在不知道合并的分支 DEF
n 上继续:您可以添加新的提交并稍后合并。
但是,作为 D
、E
和 F
的更改,而只会合并新的提交来自该分支,很可能由于 DEF
分支中已知的缺失更改而导致问题。
因此,在合并分支之前,您需要首先还原 revert-commit(git revert -m 1 G
的结果)以避免该问题。
IJK
可以保留在 H
:还原会取消 G
引入的更改,并且不会影响 H
。
另一个,我相信更简单的方法来完成你想要的是从提交 "F" 创建一个新分支。继续对 D E F 系列进行更改。然后合并回您的 "main" 分支(从 A B C 开始)。到那时,无论谁在工作,我都不会得到您的更改,您也不会影响它们。但是他们可以随时将 I J 合并到 A B C 而不会影响你。
还原可能会很混乱。特别是恢复合并。之前的答案是正确的,您将不得不还原还原,或者在完成更改后挑选还原的合并。如果您的更改触及已恢复的文件,您可能会遇到混乱的合并。 :(
如果其他人想要创建一个分支并在没有您的 DEF 更改的情况下工作,只需让他们从 C 分支,进行更改并在完成后合并。在你完成之前或之后合并都没有关系。
我的建议可能会失败的地方是,如果 I J 已完成,并准备好推向生产,而 D E F 尚未完成。然后,还原确实成为不幸的必要。 :(
祝你好运!