Git 通过让我们创建分支来提供强大的工具。当我们的分支完成后,我们经常希望将它合并回我们的main
ormaster
分支 – 或者甚至可能将它完全合并到另一个分支中。与 git 合并很简单。在本指南中,我们将介绍该merge
命令。
合并你的 git 分支#
合并非常简单。假设您在您的main
分支上,并且您想要合并一个名为my-branch
. 您所要做的就是运行以下命令:
git merge my-branch
为了可视化这一点,请看下图。在这里,main
分支以绿色显示。在我们执行合并之前,我们处于标记为 的提交上main commit
。之后,merge
创建一个标记为 的新合并提交new merge commit
。这意味着每当您进行合并时,也会进行一次提交:新功能分支主要提交新的合并提交测试分支
执行合并
如前所述,您将希望使用git merge
将另一个分支合并到您当前的分支中。但是,在执行此操作之前,您必须在当前分支上提交所有内容。因此,首先,请确保签出要合并某些内容的分支:
git checkout main
然后在您的分支上添加并提交任何文件:
git add -A git commit -m "Some merge message"
最后,您已准备好将某些内容合并到您的分支中:
git merge my-branch
### 快进合并
由于分支在这里发散,因此只进行了一次新的提交。但是,如果分支没有发散,那么就会提交所谓的“快进”合并。这是将该功能的整个提交历史复制到main
分支的地方。例如,如果我们有一个main
分支,我们创建了一个分支,然后只更改了该分支,而不是main
,则将创建一个快进合并。
这意味着我们的提交历史将如下所示:测试分支
您可以使用以下命令避免快进合并--no-ff
:
git merge --no-ff my-branch
还有一些其他ff
选择:
--ff
– 默认值 – 将在可能的情况下进行快进。--ff-only
– 只有在可以快进的情况下才会合并。否则什么都不会发生。
解决合并冲突
合并代码有时会导致合并冲突。这是当您尝试合并代码时 Git 无法自动确定应该发生什么的时候。在这些情况下,您必须先手动解决合并,然后才能完成它。如果你认为你现在不能解决它,你可以通过运行退出合并git merge --abort
。
设置合并提交消息
正如我所提到的,合并也会在你的 git 历史中创建一个新的提交。如果要添加自定义消息,可以像使用该-m
标志一样使用git commit
:
git merge my-branch -m "Some commit message"
### 防止自动提交
有时,一条合并消息是不够的——你想将你的代码合并到一个分支中,稍微改变一下,然后完成你的提交。您可以使用以下命令合并分支而不创建提交--no-commit
:
git merge --no-comit my-branch
之后,您可以对代码进行任何更改,然后在闲暇时进行新的提交:
git add -A git commit -m "New commit message"
结论#
在本指南中,我们介绍了您在合并时需要了解的主要主题。在 git 中,合并代码是与他人协作和管理分支的重要主题。如果您遇到合并冲突,您可以在此处阅读相关内容。否则,请在此处查看更多 git 内容。