1 回答

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
假設(shè),遠(yuǎn)程上的 commit 是 A -> B
你在 A 電腦上 commit 和 push 之后,遠(yuǎn)程變成了 A -> B -> C -> D
現(xiàn)在,B 電腦上還是 A -> B
。然后你 commit 了,那么 B 電腦上就是 A -> B -> E
。
所以,你需要的是把 B 電腦上的歷史線變成 A -> B -> C -> D -> E
這時(shí),你需要在 B 電腦上:
git pull --rebase origin dev
這個(gè)命令等同于:
git fetch origingit rebase origin/dev
執(zhí)行之后,B 電腦上的歷史線就會(huì)變成 A -> B -> C -> D -> E
,然后你就可以 push
了
多說一句,之所以顯示上面的“錯(cuò)誤”,是因?yàn)?nbsp;A -> B -> C -> D
和 A -> B -> E
有一個(gè)共同的祖先 B
,你在本地多了一個(gè) commit E
,遠(yuǎn)程多了兩個(gè) commits C
和 D
。這個(gè)時(shí)候如果你要在 A -> B -> E
的 branch 上 push
,git 猜不出到底想保留 C
和 D
,還是只要 E
,還是都要,就會(huì)出現(xiàn)上面的提示。
- 1 回答
- 0 關(guān)注
- 2537 瀏覽
添加回答
舉報(bào)