发现问题
远程已有分支,本地需要新建对应分支,于是执行命令:git checkout --track origin/XXX
时报错。
fatal: 'origin/XXX' is not a commit and a branch 'XXX' cannot be created from it
原因:
- 远程真的没有这个分支,所以失败
这个情况没什么好说的 - 远程有这个分支,但是本地认为远程没有这个分支
执行如下命令,查看本地缓存的所有远程分支,看看你要的分支在不在其中,如果不在,那么就去看如下解决方案git branch -r
输出显示远程并没有test2分支,但是实际上远程仓库是真的有test2分支的,从而导致报错。
这里主要给出2的解决方案。
解决方案
只需要将远程的最新数据(包括代码和分支)重新加载到本地,再进行相应的操作即可
方法1:
git fetch origin
此时,再git branch -r
就能看到test2了
此时再执行之前的命令即可
方法2:
执行如下命令,相当于git fetch
,也就是最新数据(包括代码和分支)重新加载到本地
git remote update origin --prune
后面就和方法1的步骤一样了