我将远程源设置为当前分支的默认分支。我还有一个上游远程,它不是该分支的默认值。是否有一种方法可以配置远程的默认分支,以便在拉取时默认使用该分支?
这是我的.git/config文件:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:studgeek/knockout.git
[branch "gh-pages"]
remote = origin
merge = refs/heads/gh-pages
[remote "upstream"]
url = git://github.com/SteveSanderson/knockout.git
fetch = +refs/heads/*:refs/remotes/upstream/*
merge = refs/heads/gh-pages
有了这个,我可以愉快地执行以下操作,并且它默认为origin/gh-pages
git pull
我想做的就是将它远程上游,让它找到分支(gh-pages)部分。
git pull upstream
与其这样,不如这样
git pull upstream gh-pages
如果我省略分支,现在会得到以下结果:
$ git pull upstream
You asked to pull from the remote 'upstream', 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.
我可以看到三种不同的默认方式适用于我当前的情况,但我不确定如何执行其中任何一种方法: * 只需使用当前分支作为远程上游的默认值 * 为当前分支的上游远程指示默认分支(同时将origin保留为默认分支) * 在远程上指定默认分支。当然,这里的危险是如果我切换分支,则默认的上游分支仍然保持不变。在我的情况下,这很好,但我可以看到这会烧坏那些没预料到的人。
注意,指定远程git分支提出了类似的问题,但解决方案需要做两件我们不想做的事情 - 更改默认远程或明确列出分支(我们希望将其编码以避免手动错误)。