Git单分支克隆后如何检出其他远程分支
单分支克隆场景下检出指定远程分支的解决方案
报错原因
执行
git checkout --track origin/development触发fatal: 'origin/development' is not a commit and a branch 'development' cannot be created from it报错的核心原因:--single-branch参数克隆仓库时,本地仅配置了初始指定分支(本次为master)的远程引用,没有存储其他远程分支的元数据,因此无法识别未配置的远程分支。
轻量检出指定远程分支步骤(不额外拉取无关分支数据)
- 新增目标分支的远程追踪配置
执行命令仅添加development分支的远程追踪规则,不修改其他配置:
git remote set-branches --add origin development- 新增目标分支的远程追踪配置
- 拉取目标分支的远程数据
仅拉取development分支的提交记录,不拉取其他分支内容:
git fetch origin development- 拉取目标分支的远程数据
- 检出并切换到本地development分支
执行原有checkout命令即可正常创建本地分支并自动关联远程分支:
Git 2.23及以上版本也可使用更简洁的switch命令:git checkout --track origin/developmentgit switch development- 检出并切换到本地development分支
可选配置:支持后续检出任意远程分支
如果后续需要频繁操作多个远程分支,可修改远程仓库的拉取规则,支持全部分支引用同步:
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
配置完成后执行git fetch即可拉取所有远程分支的元数据,之后可直接checkout任意远程分支。
内容的提问来源于stack exchange,提问作者DroidLearner
相关产品推荐
相关产品推荐

