我合并了一个分支,说developer
到另一个分支,说main
。
然后我意识到对developer
所做的更改并不意味着在main
中可用。
我使用了remove branch
选项,该选项创建了一个合并请求,但不包括我对main
分支所做的更改。我合并了此请求,并且main
分支不再包含对developer
的更改,而developer
分支则保持原样。
但是,几天后,我希望这些更改在main
中可用,我尝试创建从developer
到main
的新合并请求。此请求显示没有要合并的提交。
也许提交早先已合并到main
分支中,并且Git现在不将它们识别为新提交(尽管它们已还原)。
将developer
中可用的更改合并到“ main”现在的方式是什么?
答案 0 :(得分:0)
您必须采取的步骤可以总结如下(请注意,我将首先概述您可能想要的方式,然后再概述所需的步骤):< / p>
这是您应该如何做:
从主目录创建并签出新的临时分支以稳定合并
git checkout main
git checkout -b temp-merges
还原您的还原,在这个新分支上
git revert SHA-OF-PREVIOUS-REVERT
如果您在原始合并后对开发人员进行了进一步的更改,则也可以将开发人员合并到这个新的临时分支中
git merge developer
最后将临时分支合并到main中,接受结果
git checkout main
git merge temp-merges
删除临时分支
git branch -d temp-merges
现在,这使您可以在最终合并到main中之前验证结果。
在最终合并之前,这是分支的外观
developer
v
1--2--3--4--5--------------------+
\ \
\ (-(-D))--G
\ / ^
\ / temp-merges
A--B--C--D--(-D)--E--F
^
main
如果您不需要执行此操作,或者可以在推送之前在主分支上本地执行此操作,则所需步骤很简单:
还原主分支上的还原
git revert SHA-OF-PREVIOUS-REVERT
如果您在原始合并后对开发人员进行了进一步的更改,则也可以将开发人员合并到主分支中
git merge developer
验证(如有必要)
如果您的情况仅仅是您在原始合并后没有对开发人员进行任何更改,则只需执行以下操作:
还原主分支上的还原
git revert SHA-OF-PREVIOUS-REVERT
并称之为一天。