Eclipse中Egit衝突解決
Eclipse中Egit衝突解決
Git 作為進來最流行的分散式版本控制軟體來說應用的十分廣泛。EGit就是一款Eclipse上的Git外掛。在使用Egit提交專案時,有時會產生衝突,需要對程式碼進行merge。這裡對內容衝突的解決進行介紹。
內容衝突是指兩個使用者修改了同一個檔案的同一塊區域,git會報告內容衝突。
1. 產生內容衝突
我們原始檔案內容如下所示:
有兩個專案組同時對其進行修改:
1) GordonCoder將第三行中“System.out.println();”修改為“System.out.println(“Hello, GordonCoder”);”
2)Jiangpeizhao將第三行中“System.out.println();”修改為“System.out.println(“Hello, Jiangpeizhao”);”,
GordonCoder修改完檔案後commit 並push,之後Jiangpeizhao進行修改並準備提交。
2. 提交修改
在專案上右擊選擇Team-Commit,在彈出對話方塊中填寫“Commit message”並勾選需要提交的檔案,點選“Commit and Push”。如果沒有發生衝突,則提交正常;如果有衝突,則會填出下面的對話方塊“master:master[rejected – non-fast-foward]”:
此時在專案上右擊選擇Team-Synchronize Workspace
此時Eclipse介面如下,會跳到Team檢視:
專案資料夾右側有“↑1”和“↓1”,說明有一個未push的修改和一個未pull的修改。開啟下面的History視窗,可以看到最上面的兩條修改,一個由Jiangpeizhao提交,一個由Gordon提交。
此時產生衝突。
3. 解決衝突
首先,將修改從遠端pull到本地,點選下圖的小按鈕:
點選後如下圖所示:
其中”<<<<<<< HEAD”、”=======”、“>>>>>>> branch 'master' ofhttps://git.oschina.net/Jpz/SpringDemo2.git”直接的就是雙方的修改。
右擊專案,選擇”merge tool”:
如果”merge tool”是灰色的,如下圖所示:
那麼可能是由於沒有在本地進行Commit或者沒有進行pull。
點選”merge tool”後彈出:
注意現在檔案圖示下的紅箭頭,這是衝突的標誌。如果沒有彈出這個對話方塊,那是因為Git設定的問題。選擇Window-preference:
在彈出對話方塊中找到Team-Git,將Merge tool context設定為第一個選項”Prompt when starting tool”,點選OK:
在下面填出的對話方塊中
選擇第二個選項,之後如下所示:
手動來解決衝突,在本例中將這一行改為“System.out.println(“Hello, everyone”);”修改完後保持(ctrl+s,呵呵)。
右擊專案,選擇”Add to git index”:
注意此時圖示的變化。
4. 合併merge
右擊專案,選擇”Commit…”提交至本地,此時的提交便是合併:
彈出視窗如下:
點選“Commit”。如果是隻有一個衝突,此時也可以直接點選“Commit and Push”
點選“Commit”後如下所示,注意箭頭數:
此時解決一個衝突,如果衝突多,需要繼續處理,就繼續按以上步驟來。解決完後,點選”Push”:
最後如下所示:
點OK即可。
5. 檢視history:
在java界檢視,右擊專案選擇“team-show in history”,如下所示:
可以檢視history:
關於Egit的其他操作課參考:
http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html
相關文章
- git 解決衝突Git
- Git 解決衝突Git
- 程式衝突及其解決
- git pull 衝突解決Git
- hash衝突解決方法
- Git衝突解決技巧Git
- SVN解決衝突 記錄
- css命名衝突解決方法CSS
- git 解決版本衝突問題Git
- git pull衝突的解決方案Git
- JAR衝突問題的解決JAR
- flutter dialog中軟鍵盤遮擋解決衝突Flutter
- Android 解決BottomSheetDialog 拖曳衝突問題Android
- 依賴衝突時的解決方法
- Android com.android.support衝突解決Android
- Git 解決本地遠端版本衝突Git
- Jar包衝突解決方案調研JAR
- GO 問題之多版本衝突解決Go
- maven依賴衝突以及解決方法Maven
- Elasticsearch——併發衝突以及解決方案Elasticsearch
- Maven依賴衝突解決總結Maven
- Git 衝突了怎麼辦,如何高效快速的解決程式碼衝突?Git
- 09.SVN入門筆記——在 Eclipse 中使用 SVN 客戶端外掛解決衝突筆記Eclipse客戶端
- Maven Idea檢視解決jar包衝突MavenIdeaJAR
- 解決預設方法衝突的規則
- hash解決衝突的方法優缺點
- Flutter和iOS手勢衝突解決思路FlutteriOS
- git 解決衝突 —— git stash 當前修改Git
- 解決動態庫的符號衝突符號
- 一招解決所有依賴衝突
- HTML中兩個tabs導航衝突問題的解決方法HTML
- Android View 滑動衝突解決方式以及原理AndroidView
- com.android.support衝突的解決辦法Android
- 建立結算清單時提示衝突解決方案
- composer包依賴衝突解決一例
- 【Git】合併分支報衝突怎麼解決Git
- 在Java中,HashMap中是用哪些方法來解決雜湊衝突的?JavaHashMap
- 雜湊衝突詳解
- 解衝突用到的命令