我们正在对网站进行重大修订。修改后的站点上的所有工作都是在git分支(称为2.0)中完成的,该分支是从master分支出来的。在此过程中,已经掌握了一些较小和重要的更改,我们希望将这些更改合并到2.0中。
但是,将其作为一个大的合并似乎很麻烦-尽管某些更改可以很好地合并,但其中一些更改涉及的代码不再存在于2.0中,并且本质上将要求重新实现2.0的新功能。只要合并后仍然存在许多未解决的冲突,修复这些功能可能就很困难。我们已经考虑过使用cherry-pick从master那里带来那些可以很好地合并的更改,同时手动重新实现主要更改,但是如果我们想将2.0中的所有更改合并回给我,那将会造成麻烦。主。
理想情况下,我可以进行从master到2.0的分段合并-将一组次要提交合并到一个特定提交,然后合并一个主要提交并手动重新实现特定的新功能,然后手动重新实现另一个系列,最后,母版完全合并到2.0中。这是解决这种情况的好方法吗?如果是这样,我该如何部分合并到master中,而不是一直合并到最新的master提交中?还是我应该采取其他更好的方法?
您当然可以通过引用提交哈希而不是分支名称来逐步合并分支。因此,假设您想合并到行master\xe2\x80\x93 let\xe2\x80\x99s say it\xe2\x80\x99s abcd1234\xe2\x80\x93 上的特定提交,您只需进入2.0分支并运行:
git merge abcd1234\nRun Code Online (Sandbox Code Playgroud)\n\n使用这种方法,您可以根据需要一次进行任意数量的提交。如果发生冲突,您可以只解决一个冲突,而不必一次处理所有冲突。
\n\n如果您知道master分支上的更改仅与您的分支上不存在\xe2\x80\x99 的代码相关,因此完全过时,您可以运行:
git merge --strategy=ours bcde2345\nRun Code Online (Sandbox Code Playgroud)\n\n这将为 上的更改创建合并提交,但不会更改树的内容,因此提交将被标记为master已合并,而不实际执行任何操作。2.0