假设我有以下配置文件
[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 pull origin
那么:
fetch
将运行merge
会将获取的分支与我当前的分支合并。如果我运行git checkout master; git pull faraway
,那么git-merge
会合并吗?毕竟,我从一个不同于配置的遥控器的遥控器上拉。
答案 0 :(得分:3)
当您在分支中时,remote = origin
指定pull(实际获取)的默认行为。因此,当您执行git pull
时,遥控器是原点(也是默认值,即使未指定遥控器,它也会从原点拉出。如果指定了其他遥控器,则该遥控器将被取出。 )
当你执行git pull faraway
时,它将获取遥远的分支,但不会在当前分支主数据中合并(因为远程不是已配置的远程),除非你执行git pull faraway master
答案 1 :(得分:0)
git pull non-default-remote
将返回
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`
然后它将自动与远程当前检出的内容合并,完全忽略默认合并选项,因为我从非默认遥控器中拉出。