TortoiseGit - 處理沖突


處理沖突

沖突:遠程的master已經被其他人更新到 2repo add 12,但是自己當前的工作區在未pull到最新前,增加了1repo add 12的改動。

 

 

 

右擊最新的節點,選擇Merge to "master" ...

 

 

點擊OK后,會彈出失敗的信息。提示需要先commit本地的改動,或者先把本地的改動stash到暫存區。

 

 

點擊Stash Save,並且填寫Stash Message

 

 

Stash完成后,點擊Merge..

 

 

 

From Branch 選擇 remotes/origin/master

 

 

 

Merge完之后,點擊Stash Pop,把剛才stash到暫存區的文件Pop出來。

 

 

 

提示POP失敗,因為有存在着沖突。點擊是,查看沖突的差別

 

 

 

然后雙擊彈出對話框的沖突列表項

 

 

 

在彈出的沖突處理對話框處理沖突

 

 

左邊是Theirs,右邊是mine,右擊紅色的文本區,選擇maine在前還是Theirs在前就可以了。選擇完后,會在下面區域顯示處理沖突后的結果。最后,點擊Mark as resolved即可。

 

 

解決代碼沖突

如果commit時出現“You have to update your work copy first.”紅色警告,說明版本庫中的此文件已經被其他人修改了。請先點“ok”按鈕退出。執行update,然后再commit。

如果修改與update得到的代碼不沖突,則自動合並。如果沖突(比如對同一行代碼進行了修改),則出現”One or more files are in a conflicted state.“紅色警告,並產生幾個文件記錄沖突。一般情況下,我們不要直接編輯沖突文件。而按照以下操作手工解決沖突。

在資源管理器中,選擇commit時沖突的那個文件,鼠標右鍵菜單選擇”Edit conficts”。

出現界面,分為”Theirs”、”Mine”和”Merged”3部分,表示”別人修改的內容”、 ”我修改的內容”和”合並后的結果”3部分。我們是要將”別人修改的內容”和”我修改的內容”有取舍地合並起來,形成”合並后的結果”。

合並一般分為4種情況:

保留”我的修改”,舍棄”別人的修改”。鼠標右鍵點擊Mine框的相應行,點擊”Use this text block”。

舍棄”我的修改”,保留”別人的修改”。鼠標右鍵點擊Theirs框的相應行,點擊”Use this text block”。

同時保留”我的修改”和”別人的修改”,並將”我的修改” 放在前面。鼠標右鍵點擊Mine框的相應行,點擊”Use text block from mine before theirs”。

同時保留”我的修改”和”別人的修改”,並將”別人的修改”放在前面。鼠標右鍵點擊Mine框的相應行,點擊”Use text block from theirs before mine”。

合並完成,Ctrl+S存盤,退出。

然后,在資源管理器中,選擇沖突文件,鼠標右鍵菜單選擇”Resolved”,標記沖突已解決。系統會自動刪除因沖突而新建的文件。此時,就可以繼續進行commit操作了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM