2015-10-20 58 views
-1

我正在使用Eclipse Mars.1(4.5.1)和EGit 4.1.0。如何恢復由於與Eclipse和EGit合併而導致的更改

從一個分支合併到master後,我無法弄清楚如何告訴EGit通過簡單地保留合併之前在master中的版本來解決衝突,忽略了作爲合併。

這就是我所做的。我的Java項目都指向主人。任何項目都沒有未提交的變更。

在Package Explorer視圖中,右鍵單擊一個項目,單擊Team,Merge。

在彈出的「Merge'master'」對話框中,我選擇了一個分支(在「Local」下),我在「Commit」和「Fast forward options」上留下了「合併選項」前向,只更新分支指針「。

我點擊「合併」。彈出「合併結果」對話框並顯示「結果衝突」。公平的,我期待着衝突,我會逐個手動解決它們。

現在,我的問題是,對於衝突中的一些文件,我想要解決衝突的方式是簡單地拒絕合併導致該文件的任何更改;只要保留該文件,就像在我進行合併之前一樣。 這應該是微不足道的(至少在SVN中是這樣),但我在Eclipse中看不到如何做到這一點。合併已與「< < < < < <」衝突標記填充的文件,我只是不明白需要做什麼來恢復這些變化僅在該文件,使得文件變得簡單不變相對於主人,這是所有項目都指向的地方。

如果我在同步視圖中右鍵單擊文件並選擇「覆蓋」,我會問我是否「想覆蓋本地更改」。這正是我想要的,我希望該文件沒有本地更改,因此我單擊是。但結果是該文件被本地刪除,儘管它存在於master和分支中。它從包資源管理器中消失,並且因爲我也在編輯器中打開它,所以編輯器選項卡關閉。這不是我的意思,「覆蓋本地變化」,我不明白爲什麼會發生。

如果不是「覆蓋」,我選擇「標記爲合併」(儘管衝突標記仍然存在),文件不再顯示爲衝突,但它仍然包含所有衝突標記仍然顯示爲已更改,但我希望它對主人不變。

如果相反我解決了其他文件中的所有衝突,並且我想提交除有問題的文件之外的所有文件 - 以便那個文件保持不變 - 當提交對話框出現並列出所有文件時提交,每個都帶有一個複選框,然後單擊有問題文件的複選框以將其從提交中排除,複選框不會被取消選中,並且適用於其他任何文件;複選框不顯示禁用,但它們不響應點擊。

我錯過了什麼?

+0

合併後的文件衝突,解決衝突,添加到索引,提交 –

+0

@VamsiRavi重新「_resolve的conflicts_」 ,正如你可以從我的問題中看到的:「現在,我的問題是,對於一些衝突的文件,我想解決衝突的方式就是拒絕對合併產生的文件進行任何更改......但我在Eclipse中看不到如何做到這一點。「 – SantiBailors

回答

1

截至目前我們結帳/他們可以用在例如:It分期僅查看

1

這個問題以下面的方式解決了我。我不認爲這是正確的方式(如果有人知道我還有興趣聽到這個消息),因爲它涉及在兩個不同的Eclipse視圖之間切換,但至少這對我來說是個竅門,唯一的原因爲什麼這涉及到「同步」視圖,當我右鍵點擊處於衝突中的文件時(無論是在「Git Staging」視圖還是在Package Explorer中),我都無法找到「Mark as merged」菜單項。

  • 打開「Git Staging」視圖。衝突中的文件顯示在「不間斷更改」下。

  • 其中,右鍵單擊您只想恢復由合併產生的任何更改的文件,以保持文件不變。然後選擇「Replace With/Ours」。

  • 轉到「同步」視圖,右鍵單擊該文件,標記爲合併。

  • 現在在包資源管理器中,文件應該顯示爲沒有衝突,只是不變,所以它不會包含在提交中。

+0

我剛剛發現[這個問題](http://stackoverflow.com/questions/9790016/egit-merge-resolution-use-your-copy),看起來像我的問題一樣的問題,似乎有一個錯誤後面,Eclipse.org上的作者[報告](https://bugs.eclipse.org/bugs/show_bug.cgi?id=374790),並在該問題中解釋了不同的解決方法。 – SantiBailors

+1

永遠不要使用「同步」視圖來執行任何Git任務。該視圖將Eclipse和Git功能與Git術語中的碰撞可怕地合併在一起。 在Git中將文件標記爲合併只是將其添加到索引(因爲合併完成提交併且合併的文件已經在索引上,未合併的文件沒有)。 – BlackEye

相關問題