仅获取远程git分支的子集或仅在gitk中显示它们的子集

时间:2011-09-27 02:47:29

标签: git

如果其他开发人员在提交到trunk之前将其本地分支机构推送到共享远程存储库(共享,备份或集中存储它们以便从多台计算机访问),我是否可以轻松地仅获取自己的分支或有选择地删除对其他远程分支的本地引用?如果没有,有没有办法只在gitk中显示远程分支的子集,所以我可以看到我的分支相对于我的远程分支的位置,但没有其他人的远程分支混乱的图形?

1 个答案:

答案 0 :(得分:6)

这是仅从远程获取特定分支的一种方法:

使用配置选项remote.<remote-name>.fetch控制从远程获取的引用(包括分支)。例如,您的remote.origin.fetch可能是refspec:

+refs/heads/*:refs/remotes/origin/*

...这意味着在远程存储库中获取refs/heads/下的所有引用的名称,并使其在本地存储库中的refs/remotes/origin/下可用。 (+表示进行强制更新,因此即使更新不是快进,也可以更新远程跟踪分支。)

您可以改为列出指定要获取的特定分支的多个refspec,例如改变这一点:

 git config remote.origin.fetch +refs/heads/master:refs/remotes/origin/master
 git config --add remote.origin.fetch +refs/heads/blah:refs/remotes/origin/blah

...然后下次只会提取masterblah

当然,您已经在本地拥有许多远程跟踪分支,gitk仍会显示这些分支。你可以删除你不感兴趣的每一个:

git branch -r -d origin/uninteresting