1.先commit再pull
pull的時候回提示有沖突,需要手動merge
Accept Yours 就是直接選取本地的代碼,覆蓋掉遠程倉庫的
Accept Theirs 是直接選取遠程倉庫的,覆蓋掉自己本地的
我們選擇Merge,自己手動行進選擇、修改。
左邊部門是本地倉庫代碼,右邊部分是遠程倉庫代碼,中間的result就是你修改后的結果
左下角的accept left 和之前accept yours一個道理
左下角的accept right和之前的accept theirs 一個道理
右下角的apply是確認合並,abort是取消合並
我們在result中修改好自己想要merge的代碼,點擊apply
點yes.
這樣我們就解決了沖突,解決完沖突后記得要再commit一次,分別更新本地和遠程倉庫的代碼
這里我們選擇commit and push
點擊push
可以看到push成功了,此時我們再查看下倉庫的README.md和本地倉庫的README.md
確實都已經更新了
2.先pull,再commit和push
pull的時候我們發現有pull failed
我們可以項目右鍵-Git-Respository-stash changes
在Message中隨便取個名字,然后點擊Create Stash。
以上幾步的操作,其實就是把你在本地做的改變,通過stash先在git棧中保存起來(因為你沒有commit嘛,對比先commit再pull,你會發現 先commit再pull會比較方便,(commit操作就是類似於把改變先存起來吧。。個人理解、、))。
stash完后你會發現你本地進行的一些修改都已經不存在了,README文件也回到了之前的aaa(而不是修改后的ccc)
這樣我們就可以和遠程倉庫合並了,(我們已經把沖突先去掉了)。git pull 順利成功。
pull完以后我們查看README.md發現此時的內容就是遠程倉庫的bbb
現在我們再把之前保存的更改取出來
選擇項目右鍵--Git--Repository--UnStash Changes
選擇剛剛我們命名的那個更改記錄,我這里就是第一個。
然后我們點Apply Stash,來到如下窗口,提示有代碼沖突
有沒有覺得這個這個窗口似曾相識!!
這跟我們先commit再pull 出來的窗口一模一樣嘛!
我們直接選擇Merge
又是似曾相識的感覺,有沒有!(所以我個人感覺其實如果你沒有先commit就pull的話,你就要通過stash和unstash把改變先保存起來然后再取出來,這一步其實就相當於commit吧(、、、我覺得這樣理解沒毛病~~))。
接下來要做的還是老樣子,我們在result中修改自己想要合並的代碼(但是我這里好像有個bug,result的代碼改了之后都沒了,不知道什么原因,之前先commit再pull到這一步就沒有這個問題。所以我是在result中把本地和遠程的代碼都選上了)
然后我們點擊Apply,把沖突解決。
別忘了commit和push。
push完我們查看遠程倉庫和本地倉庫都更新成了bbb ccc