如何 fetch/pull 多个分支匹配通配符字符串?

How do I fetch/pull multiple branches matching a wildcard string?

目标: 我有几个由相同规则管理的存储库。我想创建一个 git 别名来帮助获取 and/or 只拉取相关分支,而不获取与我不关心的工作相关的许多远程分支的信息。我希望最终结果能让我的日志输出保持干净和易于管理,同时仍然提供我的相关信息。

细节: 我想要一个命令来拉 "master" 和任何以 "development/" 开头的分支(即 development/2.0...)。我想避免获取其他几个分支。这些通常采用以 "integration/" 或 "personal/".

开头的形式

我得到了什么: 由于 "git fetch --help" 中的评论,我现在知道 git 瓷器是什么,下面是我如何使用它:

git fetch origin master:master -u

这甚至可以用来获得 master 和 1 个开发分支:

git fetch origin master:master development/2.0:development/2.0 -u

但是我无法将它扩展到每个开发分支而不单独列出它们(这似乎什么都不做):

git fetch origin development/*:development/* -u

在此先感谢您的帮助!

我不知道您可以在命令行上执行此操作,但您可以通过在 git 配置中配置 refspec 来执行此操作。

配置通常看起来像这样。

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = .....

我想你会想要这样的东西(未经测试)

[remote "origin"]
    fetch = +refs/heads/development/*:refs/remotes/origin/*
    fetch = +refs/heads/master:refs/remotes/origin/*
    url = .....

虽然从中获取的行可能需要更像这些但我不确定

    fetch = +refs/heads/development/*:refs/remotes/origin/development/*
    fetch = +refs/heads/master:refs/remotes/origin/master