git - 我可以在 .git/config 中指定获取多个 refspecs 吗?

标签 git

我不想从原点获取每个分支,因为有很多。我只想跟踪一些(例如,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/*)。

10.5 Git Internals - The Refspec

关于git - 我可以在 .git/config 中指定获取多个 refspecs 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15507264/

相关文章:

git - 在没有克隆叉的情况下检查 repo 的分支分支

git - 使用 posh-git 将远程名称添加到 PowerShell 提示符

git - 在进行软重置时如何告诉 git 包含我的 merge 提交?

java - ~/.gitignore 和 `git update-index --assume-unchanged` 有什么区别

git - 如何使用 Git 忽略除某些文件/目录之外的所有文件/目录?

git - 如何将单个提交归因于多个开发人员?

带有附加信息的 Git 日志装饰图

r - 在 R 代码中显示 Git 版本

git - "Reinitialized existing Git repository"消息位于全新目录中

Git 在不切换的情况下 pull 非工作分支