如果从_any_ remote拉出来,git会拉自动合并吗?

时间:2012-01-16 02:27:25

标签: 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/remotes/faraway/*

如果我git checkout master; git pull origin那么:

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

如果我运行git checkout master; git pull faraway,那么git-merge会合并吗?毕竟,我从一个不同于配置的遥控器的遥控器上拉。

2 个答案:

答案 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`

然后它将自动与远程当前检出的内容合并,完全忽略默认合并选项,因为我从非默认遥控器中拉出。