如果其他开发人员在提交到主干(共享、备份或集中存储它们以便从多台机器访问)之前将他们的本地分支推送到共享的远程存储库,有没有办法让我轻松地只获取我自己的分支或有选择地删除对他人远程分支的本地引用?如果没有,有没有办法只在 gitk 中显示远程分支的一个子集,这样我就可以看到我的分支相对于我的远程分支的位置,而不是让图表被其他人的远程分支弄得一团糟?
最佳答案
这是一种只从远程获取特定分支的方法:
从远程获取的引用(包括分支)由配置选项控制 remote.<remote-name>.fetch
.例如,您的 remote.origin.fetch
可能是 refspec:
+refs/heads/*:refs/remotes/origin/*
... 这意味着获取 refs/heads/
下所有引用的名称在远程存储库中,并在 refs/remotes/origin/
下提供它们在您的本地存储库中。 (+
表示进行强制更新,因此即使更新不是快进的,您的远程跟踪分支也可以更新。)
您可以改为列出多个指定要获取的特定分支的引用规范,例如改变这个:
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
...然后下一次master
和 blah
将被提取。
当然,您在本地已经有很多远程跟踪分支,并且gitk
仍然会显示那些。您可以删除每个您不感兴趣的:
git branch -r -d origin/uninteresting
关于git - 仅获取远程 git 分支的子集或仅在 gitk 中显示其中的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7563671/