IDEA遇到 git pull 衝突的幾種解決方法

1.忽略本地修改,強制拉去遠程到本地

主要是項目中的文檔目錄,看的時候可能多了些標註,現在遠程文檔更新,本地的版本已無用,可以強拉

git fetch --all

git reset --hard origin/dev

git pull

關於commit和pull的先後順序,commit——》pull——》push 和 pull——》commit——》push的順序,兩種情況都遇到過代碼衝突。解決方法如下:

2.未commit先pull,視本地修改量選擇revert或stash

// 場景
同事 有新提交
我 沒有pull -> 修改了文件 -> pull -> 提示有衝突

2.1 本地修改量小

如果本地修改量小,例如只修改了一行,可以按照以下流程

-> revert(把自己的代碼取消) -> 重新pull -> 在最新代碼上修改 -> [pull確認最新] -> commit&push

在這裏插入圖片描述

2.2 本地修改量大,衝突較多

有兩種方式處理

-> stash save(把自己的代碼隱藏存起來) -> 重新pull -> stash pop(把存起來的隱藏的代碼取回來 ) -> 代碼文件會顯示衝突 -> 右鍵選擇edit conficts,解決後點擊編輯頁面的 mark as resolved->  commit&push
-> stash save(把自己的代碼隱藏存起來) -> 重新pull -> stash pop(把存起來的隱藏的代碼取回來 ) -> 代碼文件會顯示衝突 -> 右鍵選擇resolve conflict -> 打開文件解決衝突 ->commit&push

另外,由於我是通過IDEA來操作git的,所以顯示衝突時,我是在圖形化界面操作的示意如下

在這裏插入圖片描述

3.已commit未push,視本地修改量選擇reset或直接merge

// 場景
同事 有新提交
我 沒有pull -> 修改了文件 -> commit -> pull -> 提示有衝突

3.1 修改量小,直接回退到未提交的版本(可選擇是否保存本地修改)

如果本地修改量小,例如只修改了一行,可以按照以下流程

-> reset(回退到未修改之前,選hard模式,把自己的更改取消) -> 重新pull -> 在最新代碼上修改 -> [pull確認最新] -> commit&push

ps:實際上完全可以採取直接merge的方法,這裏主要是根據儘量避免merge的原則,提供一種思路

在這裏插入圖片描述
在這裏插入圖片描述

3.2 修改量大,直接merge,再提交(目前常用)

-> commit後pull顯示衝突 -> 手動merge解決衝突 -> 重新commit -> push

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章