问题介绍:
首先远端有很多分支,但是sourcetree不显示远程的其他分支的问题,使用命令行模式 输入以下命令行
git fetch --all
git branch -r
返回的还是看到的那一个远程分支。
一、首先确认是否是权限问题
如果你访问远程仓库的方式受限(如只读权限且只允许查看某个分支),Git 也只能获取到那一个分支。
二、如果权限没问题,检查一下fetch 配置是否被限制
检查方法:
bash
cat .git/config
查看[remote "origin"] 下面的配置
bash
[remote "origin"]
url = git@xxx.git
fetch = +refs/heads/*:refs/remotes/origin/* # 正确配置
如果这里是:
bash
fetch = +refs/heads/main:refs/remotes/origin/main
就意味着只能获取 main 分支,可以通过以下2种方式来修改
a、命令行模式
bash
# 先清除现有的限制
git config --unset-all remote.origin.fetch
# 添加通配符配置
git config --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
# 重新拉取所有分支
git fetch --all
b、直接修改config文件
打开.git / config 文件,直接修改 fetch配置项为:
bash
fetch = +refs/heads/*:refs/remotes/origin/* # 正确配置
然后在sourcetree中获取一下就可以了