2016-08-07 190 views
2

这可能违背了git的设计理念,但是:在我的组织中,我经常拉下数以千计的开发人员分支,名为例如: Dev/<login>/<something...>有没有办法让git忽略整个分支?

我宁愿有git,默认情况下,不拉下这些分支。然后,如果事实证明我确实需要在特定分支中进行协作,那么我只是明确地将其拉下来。

这可能吗? (我很少研究表明无)

感谢

+1

'.gitignore'将会是错误的地方。您需要调整'.git/config'中的'fetch'规范以获取适当的遥控器。尝试在那里玩一些通配符。对不起,我没有足够的知识来帮助你进一步,但很想看到一个工作的解决方案。 :-) –

+0

可能重复[可以永久忽略远程分支?](http://stackoverflow.com/questions/16842426/can-git-permanently-ignore-a-remote-branch) –

回答

3

git-pull使用git-fetch

查看https://git-scm.com/docs/git-fetch的文档,特别是“配置远程跟踪分支”部分(下面逐字附加)。

看着这一点,您只能将模式列入白名单,而不能排除某些模式。什么,你可以因此要做的就是一个:

  • 手动列出要从而不是通配符拉树枝
  • 让每个人都使用前缀为所有分支机构,这样就可以Dev/*Foo/*区分

混帐取允许您将远程配置。 <存储库> .fetch配置变量。

典型地,这样一个可变可能看起来像这样:

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

该配置在两种方式使用:

当GIT中取指令而不指定什么分支和/或代码,以便在所述命令获取运行线,例如git获取原点或git获取,远程。 <资源库> .fetch值用作refspecs-它们指定要获取哪个ref以及哪些本地ref需要更新。上面的例子将获取原点中存在的所有分支(即任何与值左侧相匹配的ref,refs/heads/),并更新refs/remotes/origin/中相应的远程跟踪分支层次结构。

+1

哦,谢谢你, @torek! –

3

你总是可以简单地获取你正在工作的当前分支,并且只能获取这个分支。

我宁愿让Git,默认情况下,当你需要合并你的分支,你可以随时使用这个语法来拉拽不下来这些分支

# pull only the current branch you are working on 
# git pull = git fetch && git merge 
git pull origin <branch name> 

现在/合并它:

# grab the remote branch 
git pull origin Dev/<branch name> 

另一种方式是 “玩” 与您refspec但我不是recommendin即便是因为它很简单。

这是一个样表的文档:

......但是,你可以使用命名空间(或目录)来完成类似的东西。

如果你有一个QA组,他们推送一系列分支,
,你想要得到的主分支和QA组的所有分支,但没有别的,你可以使用这样的配置部分:

[remote "origin"] 
    url = https://github.com/schacon/simplegit-progit 
    fetch = +refs/heads/master:refs/remotes/origin/master 
    fetch = +refs/heads/qa/*:refs/remotes/origin/qa/* 
相关问题