区别于:git merge branch vs git merge branch master

difference from: git merge branch vs git merge branch master

假设我在 master 分支中,我想合并一个名为 'branch-A' 的分支。

调用不调用master分支有什么区别吗?。即这样做

$ git merge branch-A

或者像这样:

$ git merge branch-A master

如果我颠倒顺序???

$ git merge master branch-A 

如果有,我想应该是简单的东西。我没有看到差异,但也许有些东西是我看不到的。谢谢

如果您在 master 上并且想要将 branch-A 合并到 master 中,最直接的方法是:

# first make sure you are on master
# (be on the branch you want to merge INTO)
git checkout master

# merge the other branch into master
git merge branch-A

来自doc

Incorporates changes from the named commits (since the time their histories diverged from the current branch) into the current branch.

git merge branch-A 会将分支 A 中所做的所有更改合并到您当前的分支(master)

git merge branch-A master 会将分支 A 和 master 中所做的所有更改合并到您当前的分支。因为你已经在 master 它应该只合并 branch-A

git merge master branch-A也是一样。将两个分支合并到当前分支,但顺序不同。

换句话说:git merge A B C D 会将分支 A、B、C 和 D 合并到您当前签出的分支(例如 master)。您将分支作为参数传递的顺序是它们合并的顺序。这在处理冲突时可能很有用。 合并的目标始终是您之前签出的分支。

合并两个以上的分支称为章鱼合并

通常,您不想合并当前所在的分支。 因此,我认为您不应该尝试将 master 分支 合并到自身中。

第一种情况会将branch-A合并到当前(master)分支。

对于第二种和第三种情况,当向git合并命令提供两个或多个分支时,它们将按照提供的顺序合并到当前分支中。

例如:

git merge branch-A branch-B

这会将分支 A 合并到当前分支,然后合并分支 B

这个答案解释了更多关于章鱼合并的信息 Git octopus merge order of multiple branches

您还会发现此文档很有帮助: https://git-scm.com/docs/git-merge