合并从先前提交的主分支中获取的分支的最佳方法是什么?
我正在使用的存储库的主分支有大约二十个不需要的提交。我的同事完全失去了不需要的代码提交。
当我开始编写代码时,我将分支' dev'从最后一个好的'使用哈希提交。
我已经在这个分支上提交了很多新代码,我们正在寻求将其合并回主分支。我认为选项包括:
将master分支硬复位回同一个commit dev分支,然后合并分支。 (我对此进行了测试,并且有一个干净的合并,正如预期的那样只在该提交之上重放新代码)
完全用dev替换master分支,因为它现在包含完整的提交历史记录。 (不确定这样做的最佳方法)
也许这里还有其他选择,但无论我是想要让本地和远程主设备和开发分支同步。
答案 0 :(得分:0)
如果您在主服务器和合并时执行硬重置的第一个选项,则需要执行强制推送以使远程主服务器正确更新。根据其他分支的状态,当他们尝试自己提取更新时,这可能会给人们带来麻烦。如果只是你和你的同事使用回购,这可能没问题。
否则,由于您不关心其他提交,您可以创建一个还原提交回到您分支的位置,这将撤消更改,然后合并您的分支和推送,而不会对其他所有人造成干扰。
您将在master上使用的恢复命令:
git revert HEAD..<sha of after branched commit>
这应该创建一个提交,它将从您的同事撤消所有其他提交,并将repo恢复到您从中分支的类似状态。这样做的好处是你可以保留历史,而不需要强行推动。