远程仓库上,有人新建了一个远程分支
可以在 gitlab 页面上看到该分支
但是 git branch -r 或 git branch -a 却看不到该远程分支
这是为什么呢?这个问题我们放到最后
现在我们直接以该远程分支为源新建一个同名本地分支
发现报错了,这又是为什么呢?这个问题我们也放到最后
先说说正确的步骤
-
先拉取该远程分支到本地
$ git fetch origin 远程分支此时
git branch -r或git branch -a就可以看到该远程分支了 -
在本地创建一个同名的新分支并切换到该新分支
$ git checkout -b 本地新分支(与远程分支同名) origin/远程分支 // 等同于 $ git checkout -b 远程分支提示
set up to track remote branch说明新建的本地分支与同名远程分支已经建立追踪关系 -
此时我们再
git branch -a就可以看到该远程分支对应的同名本地分支了
综上所述,推断出两点
- 只有在
git fetch之后,git branch -r与git branch -a才能展示出远程仓库中新建的远程分支,可见git branch -r并不会发请求去获取远程最新的分支情况 - 当我们使用
git checkout -b 本地新分支(与远程分支同名) origin/远程分支时,这个origin/后面跟着的所谓远程分支,必须是git branch -r所展示的远程分支,不能仅仅以gitlab页面上有这个远程分支名为准