天天看點

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

指令即可檢出建立的分支