Egit的merge合併衝突具體解決方法

前提工作

  • 創建一個普通JAVA工程Test,創建一個類Test,寫點東西並加入到本地git庫;
  • 創建個develop分支,創建個Develop類,修改Test類的某些語句,添加新代碼段,提交;
  • 切換到master分支,創建個Master類,修改Test類的同一部分語句,提交;

以上三條操作不進行詳細說明,很簡單的。

 58585918.com很多兼職、返利、招聘網站信息,希望可以幫助大家。

 

合併過程

打開git repository exploring視圖:

 

在Test庫中,在develop分支上打開右鍵菜單,點擊Merge:

 

出現衝突提示框:

  

返回JAVA工程項目視圖,可以看見Test工程已經自動進行了部分合並,添加了Develop類,但Test類存在衝突(有紅色雙箭頭標記的文件纔是衝突,茶色星星標記的文件沒有實際衝突項),選中工程打開右鍵菜單,打開Merge Tool:

 

Merge Tool界面顯示如下,左邊爲衝突文件的當前版本(master分支),右邊爲準備合並過來的目標版本(develop分支),手工把右邊的代碼copy到左邊,或至少隨意更改下左邊的文件,保存。   注:右邊的窗口有時候標題顯示的版本節點不正確,可能是BUG,或者筆主理解能力不足所致。

 

在Merge Tool中更改並保存後,當前衝突的Test類如下圖中的各種神奇標記符號將自動消除:

 

上圖的紅色神奇符號已經自動合併消除,並呈現類似下圖的合併效果:

 

Window->Show View->Other,打開Git Staging視圖:

 

Git Staging視圖中,Unstaged Changes部分包含衝突文件(包括手工合併前後),Staged Changes部分包含已經完成自動合併的文件,在已經合併完成的衝突文件Test.java上打開右鍵菜單,選中Add to Git Index:

 

Test.java被添加到Staged Changes下面,並自動生成Commit Message等內容,確認無誤後點擊Commit提交:

 

至此,Merge合併的衝突已經完全解決,從develop到master方向的合併已經完成:

 

若要從master合併到develop,只需切換到develop分支,(在git repository exploring視圖中)在master菜單上點擊Merge即可。筆主使用的Egit2.2版本默認進行Fast-Forward方式的合併,最新的3.2版已經提供是否選擇Fast-Forward的UI窗口。

* 關於Egit3.2的Fast-Forward合併:提供該選擇的UI窗口僅在JAVA視圖窗口中,通過項目工程右鍵菜單中執行Team->Merge觸發顯示,通過上面使用git repository exploring視圖簡單調用Merge的方式仍然使用默認的Fast-Forward合併:

 

最後

筆主最近在糾結個問題,從google下載下來的adt bundle,內置的eclipse3.8版,安裝egit3.2的時候會自動連帶把eclipse平臺升級到4.2,然後界面各種崩壞,各種BUG,懷疑是插件中的Mylyn部分升級所致...安裝svn插件也見有類似問題,但家裏的同一個3.8版eclipse升級到egit3.2卻沒有這種問題,原因不明,不知道各位是否有順利從3.8升級egit到3.2版並順利阻止eclipse平臺連帶升級的高人,望留言賜教!!

 

發佈了0 篇原創文章 · 獲贊 4 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章