簡體   English   中英

由於與Eclipse和EGit的合並,如何還原更改

[英]How to revert changes due to a merge with Eclipse and EGit

我在EGit 4.1.0中使用Eclipse Mars.1(4.5.1)。

從分支合並到master后,我無法弄清楚如何告訴EGit通過簡單地保留合並之前master中的版本來解決沖突,而忽略了由於合並而進入該文件的任何內容。

這就是我的工作。 我的Java項目全部指向master。 在任何項目中都沒有未提交的更改。

在“程序包資源管理器”視圖中,我右鍵單擊一個項目,單擊“團隊,合並”。

在彈出的“合並'主'”對話框中,選擇一個分支(在“本地”下),在“提交”上保留“合並選項”,在“如果僅快進僅保留”上的“快進選項”更新分支指針”。

我點擊“合並”。 彈出“合並結果”對話框,並顯示“結果沖突”。 公平地說,我期待有沖突,所以我將一一手動解決它們。

現在,我的問題是,對於某些沖突文件,我要解決沖突的方法只是拒絕合並引起的對該文件的任何更改; 只需將該文件保留為我進行合並之前的文件即可。 這樣做很簡單(至少在SVN中是如此),但是我在Eclipse的任何地方都看不到該怎么做。 合並已用“ <<<<<<<”沖突標記填充了文件,我只是看不到需要執行哪些操作才能還原該文件中的那些更改從而使該文件相對於主文件而言完全不變,指向所有項目的地方。

如果我在“同步”視圖中右鍵單擊該文件並選擇“覆蓋”,則會詢問我是否“要覆蓋本地更改”。 這正是我想要的,我希望文件沒有本地更改,因此我單擊“是”。 但是結果是該文件在本地被刪除,盡管它既存在於master分支中也存在於分支中。 它從Package Explorer中消失了,並且由於我也在編輯器中將其打開,因此該編輯器選項卡關閉了。 這不是我所說的“覆蓋本地更改”的意思,我也不知道為什么會發生。

如果我選擇“標記為已合並”而不是“覆蓋”(盡管沖突標記仍然存在),則該文件將不再顯示為處於沖突狀態,但仍包含所有沖突標記,並且當然仍顯示為改變了,而我希望它相對於大師保持不變。

如果我解決了其他文件中的所有沖突,並且想提交所有文件(有問題的文件除外),以便一個文件保持不變,那么當提交對話框出現並列出所有要提交的文件時,每個文件都帶有一個復選框,然后單擊有問題的文件的復選框以將其從提交中排除,該復選框不會被取消選中,這適用於其他任何文件; 復選框看上去沒有被禁用,但是它們不響應點擊。

我想念什么?

通過以下方式為我解決了這個問題。 我不認為這是正確的方法 (如果有人知道,我仍然很想聽聽),因為它涉及到在兩個不同的Eclipse視圖之間進行切換,但這至少對我有用,這是唯一的原因涉及“同步”視圖是,當我在沖突的文件上單擊鼠標右鍵時,無論在“ Git Staging”視圖還是在Package Explorer中,都找不到“標記為合並”菜單項。

  • 打開“ Git Staging”視圖。 沖突的文件顯示在“未暫存的更改”下。

  • 在這些文件中,右鍵單擊您只想還原合並所導致的任何更改的文件,以使文件保持不變。 然后選擇“替換為/我們的”。

  • 轉到“同步”視圖,右鍵單擊文件,標記為已合並。

  • 現在,在Package Explorer中,該文件應顯示為沒有沖突,只是保持不變,因此不會包含在提交中。

截至目前,結帳僅在EGit暫存視圖中的沖突文件上可用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM