git 無法 push 遠端倉庫 【Note about fast-forwards】
阿新 • • 發佈:2020-12-29
git 無法push遠端倉庫 Note about fast-forwards
提出問題
git push
遠端倉庫時,經常報出如下錯誤,導致無法將本地倉庫中的內容提交到遠端倉庫。
基本介紹
-
首先,報出錯誤:
non-fast-forward
-
其次,根據我們在連線遠端倉庫時,執行的配置命令
$ git remote add <遠端倉庫的別名alias> <遠端倉庫的url>
可以得出,遠端倉庫:
origin
-
然後,遠端分支:
master
-
最後,本地分支:
master
解決方案
-
首先,根據 Git 提示
hint: 'git pull ...') before pushing again.
git pull
命令把最新的內容從遠端分支(origin/master)拉下來$ git pull
-
然而,會報出如下錯誤,並給出提示:
這是因為沒有指定本地 master 分支和遠端 origin/master 的連線 -
然後,根據提示,執行
git branch --set-upstream-to=origin/master master
,建立本地 master 分支和遠端 origin/master 分支的連線$ git branch --set-upstream-to=origin/master master
-
接著,在命令列執行
git pull
,進行程式碼的拉取:$ git pull
可能還會報出其他錯誤,如圖所示:
此錯誤,是由於本地倉庫和遠端有不同的開始點,也就是說,本地倉庫和遠端倉庫沒有共同的commit
而出現的無法提交。因此,需要使用在執行
git pull
時,新增--allow-unrelated-histories
引數,命令如下:$ git pull --allow-unrelated-histories
-
另外, 也可以不設定預設分支,直接執行
git pull origin master
:$ git pull origin master
但還可能產生其他
conflict
,如圖所示:
此時,需要自己手動解決衝突再merge