搜尋

首頁  >  問答  >  主體

git 提交問題

提交都在master主分支上提交的;

專案是兩個開發,因為經常使用對方檔案比較多,不打算分支開發在主分支提交和修改,我們每次提交程式碼都是先git pull 然後git add . git commit git push這樣的命令,但是經常報錯,說什麼版本更新被拒絕,因為您當前分支的提示後面
Updates were rejected because the tip of your current branch is behind
這樣什麼原因導致的;

天蓬老师天蓬老师2802 天前682

全部回覆(6)我來回復

  • PHPz

    PHPz2017-05-02 09:50:29

    例如你的線上分支有兩個提交1和2
    你的線下分支也有兩個提交1和3
    這個時候你把線上分支pull下來之後有可能是123 也有可能是132(用google百度一下rebase)
    如果你線上的分支是12你線下的分支pull以後是132 那就會產生衝突導致你這種情況(只能在末尾加不能在中間插)
    還有一種情況就是用了amend 這時候雖然看似你線上線下是一個提交(commit message一樣) 實際上已經不一樣了(commit id變了) 所以git會認為是兩個提交這兩個提交改變的地方有重疊導致衝突產生
    要解決這個問題需要用push -f強制提交請認真搜尋仔細研究這個命令的作用產生一切後果概不負責

    回覆
    0
  • 怪我咯

    怪我咯2017-05-02 09:50:29

    你是不是有過amend提交啊

    回覆
    0
  • 怪我咯

    怪我咯2017-05-02 09:50:29

    git pull --rebase (逃

    回覆
    0
  • 黄舟

    黄舟2017-05-02 09:50:29

    你拉下程式碼來git pull了以後,你應該和你本地的git rebase master合併一下,然後再push

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-02 09:50:29

    先看下狀態git status ,紅的話就git add . ,警告就強行-A, add之後是commit ,commit再pull下載,pull完有衝突先解決衝突再重新從add開始,最後push,至少我這樣做好少有錯。 。

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-02 09:50:29

    因為已經在git的遠端倉庫上提交程式碼了, 你不能直接提交了, 你必須先把遠端倉庫的程式碼同步到你的本地, 才可以提交, 一般情況下提交之前 習慣性git pull --rebase

    回覆
    0
  • 取消回覆