執行git push時出現了以下錯誤:Your branch and 'origin/dev' have diverged,and have 1 and 2 different commits each, respectively.我在兩臺電腦上工作,電腦A和B初始都是up-to-date,之后我先在A中commit并push了幾次,然后我現在在電腦B中從初始狀態編寫,然后試圖在commit之后push,出現了上述問題(使用同一個本地和云分支)?,F在我想:合并這二者,顯示不同,然后重新commit并push
1 回答

POPMUISE
TA貢獻1765條經驗 獲得超5個贊
假設,遠程上的 commit 是 A -> B
你在 A 電腦上 commit 和 push 之后,遠程變成了 A -> B -> C -> D
現在,B 電腦上還是 A -> B
。然后你 commit 了,那么 B 電腦上就是 A -> B -> E
。
所以,你需要的是把 B 電腦上的歷史線變成 A -> B -> C -> D -> E
這時,你需要在 B 電腦上:
git pull --rebase origin dev
這個命令等同于:
git fetch origingit rebase origin/dev
執行之后,B 電腦上的歷史線就會變成 A -> B -> C -> D -> E
,然后你就可以 push
了
多說一句,之所以顯示上面的“錯誤”,是因為 A -> B -> C -> D
和 A -> B -> E
有一個共同的祖先 B
,你在本地多了一個 commit E
,遠程多了兩個 commits C
和 D
。這個時候如果你要在 A -> B -> E
的 branch 上 push
,git 猜不出到底想保留 C
和 D
,還是只要 E
,還是都要,就會出現上面的提示。
- 1 回答
- 0 關注
- 2526 瀏覽
添加回答
舉報
0/150
提交
取消