sourcetree git fetch看不到远程其他分支的问题

经验分享
274 0

最近,拉取公司的项目一直都是看不到远程的其他分支,之前百度看到的解决方案都是重新添加git remote仓库地址。

详见:SourceTree看不到远程的其他分支的处理情况

虽然可以解决问题,但是每次操作都很麻烦,于是今天我重新研究了一下,被我发现了端倪。

由于公司的项目比较大,所以我一直都养成了--depth 1的好“习惯”。也正因如此,才导致了拉取不到远程其他的分支。

官方的文档中,有具体说明这一现象。

--depth <深度>
创建一个历史记录被截断为指定提交次数的“浅”克隆。暗含 --single-branch 选项,除非给出 --no-single-branch 来获取所有分支顶端附近的历史记录。如果要浅层克隆子模块,还可以使用 --shallow-submodules 选项。

--[no-]single-branch
仅克隆直到单一分支末尾的历史,该分支被 --branch 选项或主分支远程 HEAD 指定。被创建仓库之后的抓取将只更新在克隆时被指定的远程跟踪分支。如果在 --single-branch 克隆时,远程 HEAD 未指向任何分支,则不会创建远程跟踪分支。

当然,修复这一问题也很简单,只需要修改当前仓库下git配置即可。

vi .git/config

可以看到如下一段配置

[remote "origin"]
        url = git@github.com:username/git-name.git
        fetch = +refs/heads/<branch>:refs/remotes/origin/<branch>

<branch>修改为*后,重新拉取远程分支。

git fetch

就可以看到远程的其他分支了。

sourcetree操作步骤:

sourcetree > 仓库 > 仓库设置 > 远程仓库 > 编辑配置文件

# 修改之后
sourcetree > 仓库 > 刷新远程仓库状态 
最后更新 2024-01-12
评论 ( 0 )
OωO
隐私评论