Git设置追踪分支
随着项目发展,Git仓库逐渐庞大,分支越来越多,我察觉到pull和clone的时间变得越来越久。
由于pull会更新所有索引,因此每次pull会拉取到自己不想关注的分支,浪费下载时间和存储空间。
当然我也可以每次pull或fetch都只更新一个分支,但我觉得这样有点繁琐。
因为当前项目存在以下几点情况,所以我更喜欢pull:
- 需要经常更新,包括tag
- 需要同时关注好几个分支
- 经常需要checkout、merge、pick,这类在多个分支之间的操作
通过设置追踪的远端分支,pull只会拉取固定的几个分支,正好满足我的需求。
这么做唯一的缺点是:无法及时看到非追踪分支更新,此时就需要再手动添加追踪分支。
相关指令
重置追踪的远端分支为某分支
1 | git remote set-branches origin 分支名1 分支名2 分支名3 |
重置追踪分支后,后续再添加其他追踪的远端分支
1 | git remote set-branches --add origin dev |
设置的分支名支持正则,比如:
1 | git remote set-branches --add origin dev_* |
清理未追踪分支
如果你的git本地仓库已经更新过其他的远端分支,需要再执行以下步骤清理
- 指令设置好追踪分支后,找到”工程目录.git\packed-refs”文件,删除其他分支的引用,注意最后一行空行需要保留
删除”.git\info\refs”文件,没有就不管
删除”.git\refs\remotes\origin”目录下所有文件
接着执行一次pull,可以看到只更新了追踪的几个分支
执行完上述操作后,再执行gc减少占用空间,执行指令
1 | git gc --prune=now |
检查追踪分支
1 | git branch -r |
单分支clone
如果新clone一个工程,可以使用单分支clone指令,clone后的本地仓库默认只会追踪这一个分支
1 | git clone --single-branch --branch 分支名 远端仓库url |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处 雪绘乌冬的Blog!
评论



