git merge <branch> 和 git merge origin <branch> 之间的区别

Difference between git merge <branch> and git merge origin <branch>

这不是关于 git merge origin branchgit merge origin/branch

的问题

git merge <branch> 将 合并到工作分支中。所以我们需要指定分支的"source"。它可以是本地可用的 origin/<branch> 或本地工作分支 heads/branch.

但是 origin 有什么必要呢?与 git pull 不同,我们不需要指定从哪个远程源获取。据我了解,合并操作是本地操作。

git pull 命令允许您指定一个默认远程分支用于获取,以及默认目标本地分支作为合并目标。这样做是有意义的,因为通常给定的本地分支在远程上只有一个上游。

另一方面,git merge 操作可能发生在 任何 源分支上,以您的本地分支为目标。因此,允许定义要在合并中使用的默认源分支意义不大。

当您想要更新远程分支的本地版本时,默认源分支合并的一个实例当然是 git pull。但是,这种合并场景实际上是 git pull 的一部分,通常不会单独进行合并。