當本地代碼碼好之后需要上傳到遠程倉庫的dev分支時,git push到遠程倉庫分支上 時發生錯誤: error: src refspec master does not match any. error: failed to push some refs to,例如:
如果將碼好的代碼上傳到遠程倉庫的主分支master時,如果master沒有做限制的話可以上傳成功,例如:
在網上搜索了很多的解決方法,很多相關解決辦法都是最后要 push 到遠端的主分支master 上,但很多其實要求不能把個人的修改內容直接 push 到 master 主分支,而是先推送到其他分支。
因此,當我想將本地倉庫 master 分支的修改內容 push 到遠端 develop 分支時,執行了:
git push origin develop
但是發生了錯誤,錯誤提示為:
error: src refspec dev does not match any. error: failed to push some refs to 'https://gitlab.geely.com/F-QCDS/test-lab/test-lab.git'
最后發現問題是 git push 指令的格式為:
git push [remote-name(通常為 origin)] [branch-name(遠程倉庫的分支名)]
當將本地分支 push 到遠端同名的分支時,branch-name 只需要寫一個分支名就可以(如直接克隆遠程分支后修改再push)
git push origin dev
- origin:遠程倉庫的名稱
- dev:遠程倉庫的分支名稱【本地倉庫有同名分支】
但當要 push 到的遠端分支名不同於本地分支名時,需要使用 git push origin [本地分支名:遠端分支名],因此,在上述出錯情況下,改為執行
git push origin dev:master
- origin:遠程倉庫的名稱
- dev:遠程倉庫的分支名稱【需要推送代碼至的分支】
- master:本地代碼分支【需要將此分支代碼推送到遠程分支上】