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

标签 git

如果其他开发人员在提交到主干(共享、备份或集中存储它们以便从多台机器访问)之前将他们的本地分支推送到共享的远程存储库,有没有办法让我轻松地只获取我自己的分支或有选择地删除对他人远程分支的本地引用?如果没有,有没有办法只在 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

...然后下一次masterblah将被提取。

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

git branch -r -d origin/uninteresting

关于git - 仅获取远程 git 分支的子集或仅在 gitk 中显示其中的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7563671/

相关文章:

git - 无法取消暂存 git 提交的文件

git - 删除一个看起来像 "\357\275\236"的文件

git - 如何更改 .bash_history 位置(Windows 版 Git)

git 挂起 macOS Sierra 终端没有恢复

git - 如何 "toggle"git-log的日期格式?如何在同一个 git 日志中同时显示相对日期和绝对日期?

git - 如何退出我的 git 提交消息?我不在 VIM 中,我使用了 "commit -m "命令

git - 上传大文件到Github,报错: remote disconnected

git - git 似乎无法使用 OSX SSH key

python - 如果我正在制作 pip 模块,需要上传或添加哪些文件到 git 存储库

git - 在 rebase 之前挤压