本文首發于公衆号“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個指令
-
指令fetch
git fetch origin
需要注意的是origin是遠端倉庫名,如果隻有一個遠端倉庫,第一次克隆時Git 會自動為你将此遠端倉庫命名為
origin
-
update
git remote update origin --prune
這個指令會更新遠端的分支到本地
最後再執行
checkout
指令即可檢出建立的分支