新分支有很多变化 - 我如何合并到主分支?

New Branch has had many changes - how do I merge into Master?

我已经在一个新分支上工作了一段时间 - 我向它添加了很多提交和功能 - 如此之多以至于该应用程序与主分支完全不同。我想要的是让我的 New Branch 成为主人。

将我的 New Branch 合并到我的旧 master 中会完全取代 master 还是我冒着将旧的 master 代码与我的 New Branch 代码混淆的风险?

我使用哪些命令来确保使用 GitHub 作为远程存储库可以正常工作?

您将其与 git merge 命令合并。这已经是能做到的最好的事情了。

如果您在开发期间定期从 master 合并到您的分支,则合并回来是微不足道的,主要只是将您的分支的状态推送到 master。

如果您不这样做,您将有很多冲突和一些关于功能移动到哪里以及应该合并到哪里的错误猜测,但在这一点上,任何自动化都无法为您做任何事情。为溢出的重命名哭泣是没有用的。

How do I merge this branch without my data being overwritten or old code being added to this clean branch?

三向合并的工作原理是找到最近的公共祖先修订版,然后将来自两个分支的更改应用到它。它永远不会用它自己的旧代码覆盖任何东西,除非你告诉它只选择 ourstheirs 策略的一方,或者在解决冲突时手动做同样的事情。

如果您确实定期从 master 合并,正如我们一直推荐的那样,这个最近的祖先是您上次合并的版本,所以 ours 端是您的所有开发,而 theirs 方面最多是几个简单的错误修复,应用于您的分支应该不是问题。如果你没有合并,就是你开始的版本,然后取决于master上积累了多少变化。

因此,当您 运行 陷入冲突时,关键是仍然遵循相同的 3 路合并算法,只是在更高的粒度上,然后自动化能够做到。尽量少去思考代码的含义。只需执行类似“他们将同步调用添加到此函数中,我们将函数移到那里,所以同步调用到那里”之类的操作,您真的不需要考虑为什么要添加它。