僅結(jié)合本人使用場(chǎng)景,方法可能不是最優(yōu)的
1. 忽略本地修改,強(qiáng)制拉取遠(yuǎn)程到本地
主要是項(xiàng)目中的文檔目錄,看的時(shí)候可能多了些標(biāo)注,現(xiàn)在遠(yuǎn)程文檔更新,本地的版本已無(wú)用,可以強(qiáng)拉
git fetch --all
git reset --hard origin/dev
git pull
關(guān)于commit和pull的先后順序,commit——》pull——》push 和 pull——》commit——》push的順序,兩種情況都遇到過(guò)代碼沖突。解決方法如下:
2. 未commit先pull,視本地修改量選擇revert或stash
// 場(chǎng)景
同事 有新提交
我 沒(méi)有pull -> 修改了文件 -> pull -> 提示有沖突
2.1 本地修改量小
如果本地修改量小,例如只修改了一行,可以按照以下流程
-> revert(把自己的代碼取消) -> 重新pull -> 在最新代碼上修改 -> [pull確認(rèn)最新] -> commitpush
2.2 本地修改量大,沖突較多
有兩種方式處理
-> stash save(把自己的代碼隱藏存起來(lái)) -> 重新pull -> stash pop(把存起來(lái)的隱藏的代碼取回來(lái) ) -> 代碼文件會(huì)顯示沖突 -> 右鍵選擇edit conficts,解決后點(diǎn)擊編輯頁(yè)面的 mark as resolved-> commitpush
-> stash save(把自己的代碼隱藏存起來(lái)) -> 重新pull -> stash pop(把存起來(lái)的隱藏的代碼取回來(lái) ) -> 代碼文件會(huì)顯示沖突 -> 右鍵選擇resolve conflict -> 打開文件解決沖突 ->commitpush
另外,由于我是通過(guò)IDEA來(lái)操作git的,所以顯示沖突時(shí),我是在圖形化界面操作的示意如下
3. 已commit未push,視本地修改量選擇reset或直接merge
// 場(chǎng)景
同事 有新提交
我 沒(méi)有pull -> 修改了文件 -> commit -> pull -> 提示有沖突
3.1 修改量小,直接回退到未提交的版本(可選擇是否保存本地修改)
如果本地修改量小,例如只修改了一行,可以按照以下流程
-> reset(回退到未修改之前,選hard模式,把自己的更改取消) -> 重新pull -> 在最新代碼上修改 -> [pull確認(rèn)最新] -> commitpush
ps:實(shí)際上完全可以采取直接merge的方法,這里主要是根據(jù)盡量避免merge的原則,提供一種思路
3.2 修改量大,直接merge,再提交(目前常用)
-> commit后pull顯示沖突 -> 手動(dòng)merge解決沖突 -> 重新commit -> push
到此這篇關(guān)于git pull時(shí)沖突的幾種解決方式(小結(jié))的文章就介紹到這了,更多相關(guān)git pull沖突內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- git在idea中的沖突解決方法(非常重要)
- IDEA中解決 git pull 沖突的方法
- 詳解Eclipse提交項(xiàng)目到GitHub以及解決代碼沖突
- 基于Git的常用撤銷技巧與解決沖突方法(推薦)
- git沖突解決_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 關(guān)于Git遠(yuǎn)程與本地沖突的解決方法
- 詳解git合并沖突解決方法