从master上的旧提交合并dev分支的最佳方法

时间:2018-01-26 18:42:02

标签: git github branch

合并从先前提交的主分支中获取的分支的最佳方法是什么?

我正在使用的存储库的主分支有大约二十个不需要的提交。我的同事完全失去了不需要的代码提交。

当我开始编写代码时,我将分支' dev'从最后一个好的'使用哈希提交。

我已经在这个分支上提交了很多新代码,我们正在寻求将其合并回主分支。我认为选项包括:

  1. 将master分支硬复位回同一个commit dev分支,然后合并分支。 (我对此进行了测试,并且有一个干净的合并,正如预期的那样只在该提交之上重放新代码)

  2. 完全用dev替换master分支,因为它现在包含完整的提交历史记录。 (不确定这样做的最佳方法)

  3. 也许这里还有其他选择,但无论我是想要让本地和远程主设备和开发分支同步。

1 个答案:

答案 0 :(得分:0)

如果您在主服务器和合并时执行硬重置的第一个选项,则需要执行强制推送以使远程主服务器正确更新。根据其他分支的状态,当他们尝试自己提取更新时,这可能会给人们带来麻烦。如果只是你和你的同事使用回购,这可能没问题。

否则,由于您不关心其他提交,您可以创建一个还原提交回到您分支的位置,这将撤消更改,然后合并您的分支和推送,而不会对其他所有人造成干扰。

您将在master上使用的恢复命令:

git revert HEAD..<sha of after branched commit>

这应该创建一个提交,它将从您的同事撤消所有其他提交,并将repo恢复到您从中分支的类似状态。这样做的好处是你可以保留历史,而不需要强行推动。