2013-08-05 83 views
34

我已經啓動了Eclipse EGit。在某些情況下,它實際上並不全面。Eclipse EGit簽出與文件衝突: - EGit不想繼續

我有本地文件,例如pom.xml改變了。在git服務器上,此文件已更改。 我做pull,例如:It說:

與文件結帳衝突:

即拉動停止(fetch做,但不是merge),這是確定的。然而接下來是糟糕的體驗。

我同步工作區,將我的更改放在一邊,使其與FETCH_HEAD相同。但EGit不想繼續。我用HEAD修訂版來替換文件。但EGit仍然不想繼續。

解決衝突後應該用EGit預期的用戶操作標準是什麼?

UPDATE:

added to index,然後marked as Merged - >pull仍然無法通過。
當我選擇Merge我得到的對話框

enter image description here

我不能提交該文件,因爲它不是在修改過的文件列表。

+2

您是否通過上下文菜單執行了「添加到索引」,這類似於從CVS/SVN中已知的「合併標記」?之後我認爲你必須做一個提交,它在你執行合併時執行合併提交(afaik),或者如果你執行了rebase,你應該執行'Rebase> continue'而不是提交,它會執行你當前的提交如果還有更多的承諾發生重組,則合併並重新分配。 –

+0

我不能走出這個狀態。我走錯了路,EGit沒有幫助出去。 –

+0

沒關係,對話框是我的最愛之一 - 不;)只是選擇任何選項,因爲我不知道它是否重要。但之後提交文件,然後進行拉取。這能解決問題嗎? 因爲那麼你應該能夠通過合併工具解決衝突,而不是看到這個對話框。 –

回答

41

現狀:

  • 你在本地提交的更改
  • 您從主回購拉
  • 你得到錯誤 「與文件結賬衝突:XY」

解決方案:

  • 階段和提交(至少)文件XY
  • 拉再次
  • 如果automerge是可能的,一切正常。
  • 如果沒有,拉合併文件並插入合併衝突標記(< < < < < <,>>>>)
    • 手動編輯的文件衝突
  • 提交併推送
23

這是我解決我的問題的方式:

  1. 右鍵單擊與您的本地
  2. 單擊團隊提交的修改文件夾>高級>假設不變
  3. Pull從主。

UPDATE:

由於Hugo Zuleta正確地指出,你應該同時應用這要小心。他說,它可能最終說分支是最新的,但沒有顯示更改,導致分支不同步。

+0

太棒了。這工作。 –

+1

很高興幫助。 :) –

+1

但必須小心使用此。它最終可能會說分支是最新的,但不會顯示更改,從而導致分支不同步。 –

13
  1. 關閉衝突錯誤對話框後;從項目資源管理器中,右鍵單擊該項目的負責人 - >團隊 - >藏匿處 - >藏匿變化
  2. 您的藏匿處輸入一個名稱。例如。 「衝突」
  3. 嘗試再次拉出。希望這次沒有錯誤。
  4. 從Git倉庫視圖中,展開你的資料庫 - >藏提交
  5. 右鍵單擊您在步驟中創建的藏匿2 - >應用藏匿更改
  6. 這帶來了合併工具,如果它不能自動合併它。
  7. 手動解決文件/ s中的合併衝突。
  8. 用鼠標右鍵單擊文件編輯器 - >團隊 - >添加到索引
  9. 如果您還沒有準備好提交文件或只是不希望它在索引中,右鍵單擊文件編輯器 - >團隊 - >從索引中移除。
  10. 清理:從Git倉庫視圖中,右鍵單擊您在步驟中創建的藏匿2 - >刪除藏匿提交

本地工作目錄下的文件應該被合併

+1

第5步之後,我剛剛收到消息: 發生問題: 應用來自隱藏提交的更改'......'遇到問題。 應用隱藏的提交'....'由於'應用隱藏的更改導致衝突'失敗 什麼是無用的工具....根本不合並對話框。只是愚蠢的消息。 – razor

0

我想最好的辦法要做到這一點是這樣的:

  1. 將所有的更改存儲在一個單獨的分支。
  2. 然後在本地主設備上進行硬重置。
  3. 然後從本地創建的分支合併您的更改
  4. 然後提交併推送您的更改。

那我怎麼解決我的,每當它發生。