你如何让git总是从特定的分支中拉出来?
我不是一个混帐大师,但我已经使用了一段时间了,有几个不同的项目。 在每个项目中,我始终都会git clone [repository]
并且从那个角度来说,只要我没有突出的更改,就可以随时git pull
。
最近,我不得不恢复到以前的分支,并使用git checkout 4f82a29
做到了这git checkout 4f82a29
。 当我再次准备好拉时,我发现我必须将我的分支重新设置为主。 现在,我不能使用直接的git pull
来取而代之,不得不指定git pull origin master
,这很烦人,并且向我表明我不完全理解正在发生的事情。
什么改变了,不允许我在没有指定原点主的情况下做一个直接的git pull
,以及如何将它改回来?
更新:
-bash-3.1$ cat config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[branch "master"]
[remote "origin"]
url = git@github.com:user/project.git
fetch = refs/heads/*:refs/remotes/origin/*
更新2:要清楚,我明白我的原始方法可能不正确,但我需要修复此回购,以便我可以简单地再次使用git pull
。 目前,git pull的结果是:
-bash-3.1$ git pull
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me either. Please
name which branch you want to merge on the command line and
try again (e.g. 'git pull ').
See git-pull(1) for details on the refspec.
If you often merge with the same branch, you may want to
configure the following variables in your configuration
file:
branch.master.remote =
branch.master.merge =
remote..url =
remote..fetch =
See git-config(1) for details.
我可以告诉git pull
哪个分支来合并,它工作正常,但git pull
不工作,因为它最初做我的git checkout
之前。
在[branch "master"]
,尝试将以下内容添加到repo的Git配置文件( .git/config
)中:
[branch "master"]
remote = origin
merge = refs/heads/master
这告诉Git 2的东西:
git pull
时,如果未指定远程和分支,请使用默认远程(源)并合并来自远程主分支的更改。 不过,我不确定为什么这个设置会从你的配置中删除。 您可能需要遵循其他人发布的建议,但这可能会起作用(或至少可以)。
如果您不想手动编辑配置文件,则可以使用命令行工具:
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
如果你愿意,你可以通过命令行设置这些选项(而不是编辑配置文件),如下所示:
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
或者,如果你和我一样,并且希望它成为所有项目(包括将来可能使用的项目)的默认设置,那么将其添加为全局配置设置:
$ git config --global branch.master.remote origin
$ git config --global branch.master.merge refs/heads/master
git branch --set-upstream master origin/master
这会将以下信息添加到您的config
文件中:
[branch "master"]
remote = origin
merge = refs/heads/master
如果您有branch.autosetuprebase = always
那么它也会添加:
rebase = true
链接地址: http://www.djcxy.com/p/41679.html
上一篇: How do you get git to always pull from a specific branch?