天天看点

git拉取分支报错:fatal:‘XXX' is not a commit and a branch ‘XXX' cannot be created from it

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点

问题出现的步骤

  • 首先通过

    SourceTree

    新建一个新的分支,新建分支的时候是基于远程分支的某次提交
  • 然后将新建的分支推送到远程
  • 最后在本地git目录文件夹中,通过git的checkout命令检出远程分支
    git checkout -b 本地分支名 远程分支名           

以上,就会报

fatal:‘XXX' is not a commit and a branch 'dev' cannot be created from it

的错误

问题原因

远程新建的分支没有更新到本地。实际上,git仓库分为本地仓库和远程仓库,我们用

checkout

命令是从本地仓库中找要检出的分支的。本地仓库只有在进行网络请求时才会跟远程仓库交互,比如

fetch

命令。

问题解决

更新远程仓库数据到本地,可以用2个命令

  1. fetch

    命令
    git fetch origin            

需要注意的是origin是远程仓库名,如果只有一个远程仓库,第一次克隆时Git 会自动为你将此远程仓库命名为

origin

  1. update

    git remote update origin --prune           

这个命令会更新远程的分支到本地

最后再执行

checkout

命令即可检出新建的分支