1. 程式人生 > 其它 >git 無法 push 遠端倉庫 【Note about fast-forwards】

git 無法 push 遠端倉庫 【Note about fast-forwards】

技術標籤:Bug 集錦git

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

    ,這裡不再多加贅述。