我可以在.git / config中指定获取多个refspecs吗? [英] Can I specify in .git/config to fetch multiple refspecs?
问题描述
我不想从原点获取每个分支,因为有很多。我只想跟踪一些(例如, master
)和我的分支(在 my_name
子目录下组织)。我可以这样做:
$ b $ pre $ git fetch origin refs / heads / my_name / *:refs / remotes / origin / my_name / * refs / heads / master:refs / remotes / origin / master refs / heads / some_branch:refs / remotes / origin / some_branch
我想将refspecs的上述set指定为 git fetch
的默认值。我曾尝试
$ git config remote.origin.fetch refs / heads / my_name / *:refs / remotes / origin / my_name / *
$ git config --add remote.origin.fetch refs / heads / master:refs / remotes / origin / master
失败:
$ git config remote.origin.fetch
refs /头/ my_name / *:refs / remotes / origin / my_name / *
错误:关键字remote.origin.fetch的多个值:refs / heads / master:refs / remotes / origin / master
我也尝试以下方法,但也失败:
$ git config remote.origin.fetch'refs / heads / my_name / *:refs / remotes / origin / my_name / * refs / heads / master:refs / remotes / origin / master refs / heads / some_branch:refs / remotes / origin / some_branch'
$ git fetch
fatal:无效的refspec'refs / heads / my_name / *:refs / remotes / origin / my_name / * refs / heads / master:refs / remotes / origin / master refs / heads / some_branch:refs / remotes / origin / some_branch'
注意:Git 1.7.11
.git / config
指定多次获取的refspecs:
[remote origin]
fetch = refs / heads / my_name / *:refs / remotes / origin / my_name / *
fetch = refs / heads / master:refs / remotes / origin / master
fetch = refs / heads / some_branch:refs / remotes / origin / some_branch
您可以添加前缀 +
在refspec之前,如果你想重写获取非快速转发引用,像这样:
[remoteorigin]
fetch = + refs / heads / my_name / *:refs / remotes / origin / my_name / *
fetch = + refs / heads / master:refs / remotes / origin / master
fetch = + refs / heads / some_branch:refs / remotes / origin / some_branch
请注意,部分通配符不受支持(即 a / b / ca *
不受支持,但
I do not want to fetch every branch from origin because there are many. I just want to track a few (e.g., master
) and my branches (organized under my_name
sub-directory). I can do the following:
$ git fetch origin refs/heads/my_name/*:refs/remotes/origin/my_name/* refs/heads/master:refs/remotes/origin/master refs/heads/some_branch:refs/remotes/origin/some_branch
I want to specify the above "set" of refspecs to be the default of git fetch
. I have tried
$ git config remote.origin.fetch refs/heads/my_name/*:refs/remotes/origin/my_name/*
$ git config --add remote.origin.fetch refs/heads/master:refs/remotes/origin/master
It fails:
$ git config remote.origin.fetch
refs/heads/my_name/*:refs/remotes/origin/my_name/*
error: More than one value for the key remote.origin.fetch: refs/heads/master:refs/remotes/origin/master
I also try the following but it also fails:
$ git config remote.origin.fetch 'refs/heads/my_name/*:refs/remotes/origin/my_name/* refs/heads/master:refs/remotes/origin/master refs/heads/some_branch:refs/remotes/origin/some_branch'
$ git fetch
fatal: Invalid refspec 'refs/heads/my_name/*:refs/remotes/origin/my_name/* refs/heads/master:refs/remotes/origin/master refs/heads/some_branch:refs/remotes/origin/some_branch'
Note: Git 1.7.11
You can add the following lines in your .git/config
to specify multiple refspecs for fetch:
[remote "origin"]
fetch = refs/heads/my_name/*:refs/remotes/origin/my_name/*
fetch = refs/heads/master:refs/remotes/origin/master
fetch = refs/heads/some_branch:refs/remotes/origin/some_branch
You can add the prefix +
before the refspec, if you would like to override fetching non-fast-forward references as well, like this:
[remote "origin"]
fetch = +refs/heads/my_name/*:refs/remotes/origin/my_name/*
fetch = +refs/heads/master:refs/remotes/origin/master
fetch = +refs/heads/some_branch:refs/remotes/origin/some_branch
Note that partial globbing is not supported (i.e. a/b/ca*
is not supported, but a/b/*
is).
10.5 Git Internals - The Refspec
这篇关于我可以在.git / config中指定获取多个refspecs吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!