我不想从原点获取每个分支,因为有很多。我只想跟踪一些(例如,master
)和我的分支(组织在 my_name
子目录下)。我可以执行以下操作:
$ 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 作为 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/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
我也尝试了以下但它也失败了:
$ 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'
注意: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 之前添加前缀 +
,如下所示:
[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
请注意,不支持部分通配(即不支持 a/b/ca*
,但支持 a/b/*
)。
关于git - 我可以在 .git/config 中指定获取多个 refspecs 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15507264/