通常問題是發生在本機端有做更動,遠端的 repository 也有其他人更動過,但是 code 的變動是屬於對立情形,git 無法自動 merge 成功,導致做 git pull 會出現 conflict。

依序指令下 git stash (會先將本機更動的檔案暫存)

git pull (會將 repo 程式碼拉回來並做 merge,其實 pull 指令本來就是 fetch + merge)

git stash apply (將暫存的 code 與現在 pull 後的 code 做 merge)

 

到此會分兩種情形,一種是 apply 成功,那就直接推上去

git commit

git push

另一種是 apply 後會發生 conflict ,這時候就要開啟編輯器,去看有 conflict 的程式碼,手動解決衝突(你會發現程式碼內有標明衝突區段),解完推上去,然後繼續拉 repo 程式碼

git commit

git push

git pull

如果 pull 之後又有 conflict ,就繼續手動解決衝突,然後 push ,反覆此行為直到你 pull 為 up-to-date 的狀態。

笨笨小蟹 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • Qoo記
  • stash > pull
    如果有untracked files
    在stash apply好像會不apply造成data lost