Git基础 - 将旧分支合并到主分支

5

我正在处理一个涉及IT技术的项目,其中有一个旧分支'new-changes'。

几周前创建了这个分支,并且现在需要将其中的更改添加到主分支中。

自从创建'new-changes'分支以来,主分支发生了许多变化。

现在我需要将'new-changes'分支中的更改合并到主分支中。

如果我在主分支中执行以下操作

git merge new-changes

它会仅添加“new-changes”中的内容,还是会将主分支回滚到创建“new-changes”时的状态。

什么是将“new-changes”中的更改合并回主分支的最佳方法?


你应该查看文档:https://git-scm.com/docs/git-merge - Jona
2个回答

6
如果你在master分支上执行git merge my-branch命令,则会出现以下两种情况:
  1. 如果是快进合并(my-branchmaster多了一些提交),那么my-branch中没有的提交将会被添加到master分支中,而master分支中已有的提交保持不变。
  2. 如果两个分支存在冲突的更改,那么上述合并命令可能会要求你解决冲突,并且会将my-branch中的提交添加到master分支中,并创建一个合并提交。

如何最好地将“new-changes”中的更改合并回master分支?

如果你想将更改应用到的分支(在本例中是master分支)是私有的,只有你自己使用,那么你可以选择rebase或者merge。这两个方法各有优缺点。
如果你的分支是共享的,请始终使用merge,因为这是最安全的选项。对共享分支进行rebase操作会让你的同事在尝试解决冲突时失去耐心,因为rebase会重写历史记录。

我的分支 'new-changes' 已经过时了,因此主分支将有新的提交,而不是在 'new-changes' 分支中。 - cdmt
是的。即使在这种情况下,当您将您的分支合并到主分支时,现有的主分支中的新提交将保持不变,并且您的分支中的提交将按时间顺序合并。因此,合并后的主分支将包含来自现有主分支和您的新分支的更改。 - Krantisinh

1
如果旧分支只是本地分支(即还没有推送到服务器),我建议执行rebase操作。这将仅将您的本地分支提交应用于主分支的末尾,而不会覆盖主分支中已有的任何内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接