如何获取/拉取与通配符字符串匹配的多个分支?

时间:2015-01-23 17:43:51

标签: git git-pull git-fetch

目标: 我有几个由相同规则管理的存储库。我想创建一个git别名,以帮助获取和/或仅拉取相关分支,而无需获取与我不关心的工作相关的许多远程分支的信息。我希望最终结果能够保持我的日志输出清洁和可管理,同时仍然提供相关信息。

具体细节: 我想要一个单一的命令来拉动#34; master"以"开发/"开头的任何分支; (即开发/ 2.0 ......)。还有其他几个分支我想避免获取。这些通常采用以" integration /"开头的形式。或"个人/"。

我得到了什么: 我现在知道git瓷器是什么,这要归功于" git fetch --help"以下是我如何使用它:

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

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

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

Config通常看起来像这样。

[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