如果从任何远程位置拉git,git会自动合并吗?

如果从任何远程位置拉git,git会自动合并吗?,git,git-merge,Git,Git Merge,假设我有以下配置文件 [branch "master"] remote = origin merge = refs/heads/master [remote "origin"] url = ssh://origin.com fetch = +refs/heads/*:refs/remotes/origin/* [remote "faraway"] url = ssh://faraway.com fetch = +refs/heads/*:refs/

假设我有以下配置文件

[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "origin"]
    url = ssh://origin.com
    fetch = +refs/heads/*:refs/remotes/origin/*
[remote "faraway"]
    url = ssh://faraway.com
    fetch = +refs/heads/*:refs/remotes/faraway/*
如果我做了
git checkout master;git拉动原点
然后:

  • fetch
    将运行
  • merge
    将把获取的分支与我的当前分支合并

如果我运行
git checkout master;git拖得很远
,那么git合并会合并任何东西吗?毕竟,我是从与配置的远程设备不同的远程设备进行拉取。

当您在分支中时,
remote=origin
指定拉取(实际提取)的默认行为。因此,当您执行
git pull
时,远程设备是源设备(这也是默认设置,即即使未指定远程设备,它也会从源设备中提取。如果指定了其他远程设备,则会提取该远程设备。)


当您执行
git-pull-faraway
时,它将获取遥远的分支,但不会将其合并(因为faraway不是配置的远程)到当前分支主控中,除非您执行
git-pull-faraway主控
git-pull非默认远程
将返回

You asked to pull from the remote 'production', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
但是如果我打字

git pull non-default-remote `git config remote.non-default-remote.fetch`

然后,它将自动与远程设备上当前签出的内容合并,完全忽略默认合并选项,因为我正在从非默认远程设备进行拉取。

当我尝试仅指定非默认远程设备(且没有分支)时,我得到了以下信息:
您要求从远程“生产”中拉取,但没有指定分支。因为这不是当前分支的默认远程配置,所以您必须在命令行上指定一个分支。
@Thr4wn-是的,这不是我要说的吗?你要做的就是把远方的主人拉回来,好吧,我现在觉得自己很笨;P那正是你说的。