我已经阅读了有关合并顺序中的两个提交的信息,但是我如何合并彼此不立即执行的两个提交。
例如,我当前的提交与旧的提交
提交顺序
er34rwe commit4
rtt45y5 commit3
iwe8j89 commit2
4E89E8J commit1
现在,我需要将commit4与commit2合并,并可能将结果放置在commit2的位置。这样的结果是
rtt45y5 commit3
iwe8j89 commit2_4 <-- new one
4E89E8J commit1
如果提交已经被推送到远程存储库,是否有办法做到这一点?以及具有新历史记录的远程存储库。即两个提交都显示为一个。
您可以为此使用交互式变基。假设这er34rwe
是最早的提交,请执行以下操作:
git rebase -i er34rwe
这将以如下视图启动编辑器:
pick er34rwe commit4
pick rtt45y5 commit3
pick iwe8j89 commit2
pick 4E89E8J commit1
然后,您可以通过简单地移动以下行来首先更改这些提交的顺序:
pick rtt45y5 commit3
pick er34rwe commit4
pick iwe8j89 commit2
pick 4E89E8J commit1
然后,您也可以将其更改pick
为另一种模式(在编辑器的底部进行了说明)以进行更改。在你的情况,你想改变commit2
,以squash
将其融合成前一个(commit4
-该文件是从顶部读/最旧到底部/最新提交):
pick rtt45y5 commit3
pick er34rwe commit4
squash iwe8j89 commit2
pick 4E89E8J commit1
然后保存并退出编辑器以开始该过程。然后,Git将为所有提交重新设置基础,并提示您为要合并的两个提交手动合并提交消息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句