解决git checkout -b 拉取远端某分支到本地时报错

问题描述

日常开发场景中,经常会出现切分支的情况,所以git checkout 命令是非常高频的

shell 复制代码
git checkout -b feature/xxx

默认情况下,这条命令是基于当前所在分支来开辟新分支feature/xxx

但是,还有一些情况,我们需要基于远端的某个分支来在本地创建新分支;

说白了,就是拉取远程的某个分支到本地,需要这样使用

shell 复制代码
# 建议下面的本地和远端分支名保持一致,然后再在本地另外开辟分支进行修改开发
# git checkout -b 本地分支名 origin/远端分支名
git checkout -b feature/xxx origin/feature/xxx

但是经常出现下面的错误

解决

获取元信息

第一个可能的原因是本地没有存储远端分支的元信息,解决办法就是 git fetch一下

shell 复制代码
git fetch origin

之后再去checkout一下,就可以了

但是有些小伙伴依然报错,那往下看

更改配置

看一眼gitlab,明明这个分支的确就躺在列表里,就是拉不下来,始终报错,git fetch似乎啥也没干

why?

其实这个跟新版本的git 仓库 初始化时的配置有关系

在仓库目录下.git 文件夹下有一个 config 文件

在远程配置中有fetch命令的配置,默认是下面这样子的

修改一下 指定远端名下的fetch配置 (我这里是默认master,你们根据需要选择,有些仓库不只一个remote)

从只匹配master 改为通配符

然后再依次执行

shell 复制代码
git fetch origin # 这个时候会在控制台看到日志信息,拉取的元信息
git checkout -b feature/xxx origin/feature/xxx

搞定!

相关推荐
先跑起来再说3 小时前
Git 入门到实战:一篇搞懂安装、命令、远程仓库与 IDEA 集成
ide·git·后端·elasticsearch·golang·intellij-idea
承渊政道7 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
Doro再努力7 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
摇滚侠9 小时前
MAC IDEA GIT 提交区显示了几个不存在的目录
git·idea
城东10 小时前
Git使用[远程仓库远端的head比本地和提交的head旧,其他人拉不到最新代码]
git·head·远程仓库远端·比本地和提交的head旧·其他人拉不到最新代码
何中应19 小时前
使用SSH地址拉取远程仓库代码报下面的错误
git
何中应19 小时前
Git本地仓库命令补充
git
sun00770021 小时前
执行repo sync -c -d -j4以后,提交未git push的代码看不到了。要怎么恢复?
git
胖虎11 天前
Git 一个本地仓库同时推送到两个远程仓库(详细教程)
git·多远程仓库·双远程仓库·git双远程·git备份
春日见1 天前
如何创建一个PR
运维·开发语言·windows·git·docker·容器