2016-03-03 56 views
0

當我嘗試合併階段我得到這些奇怪的嵌套衝突線。 當我嘗試選擇我想保留在vimdiff mergetool中的一個:diffg LO和:diffg RE時,它看起來有些奇怪的變化,我永遠無法獲得正確的合併分辨率。Git衝突行奇怪嵌套

截圖來自Notepad ++比較插件。左側爲本地文件,右側爲遠程文件。

衝突1:

標誌着文件之間的不同

衝突2:

我的猜測是,合併標記造成與其他合併標記衝突,將合併它們周圍的痕跡。當選擇遠程更改時,現在實際上是衝突的下一個合併標記將被解釋爲實際合併標記,但由於它們嵌套的方式,它不會拾取合併標記的正確開始或結束行。

我試着簡單地刪除所有合併的東西(合併標記及其出現的行,.orig.orig和_LO和_RE文件出現),並保留文件(真實文件和.orig文件)的方式我想要他們,但那對我不起作用。

您能否介紹一下這些衝突是如何工作的,我該如何看待這些衝突以及與他們打交道的方案有哪些?

另外,爲了更好地理解合併,我想知道Git如何找到這些標記。從我所嘗試的方式來看,我認爲它會根據他們的位置記錄來尋找他們,並且如果他們被完全從他們應該在的地方刪除,會遇到問題?

+0

我還想問一些我的問題的答案,但如果有人遇到這個問題,我設法通過做「git rm path/to/file.phtml.orig path/to/other /file.phtml.orig「從git中刪除這兩個文件,然後我能夠通過git commit完成合並。 –

回答

0

我對你爲什麼有「嵌套」衝突的猜測是因爲你在其中一個想要合併的分支中留下了一個「掛起」(如「未解決」但已提交)的衝突,現在你正在嘗試要再次合併,您將看到之前的衝突現在顯示爲另一合併的一部分。你能檢查那些你正在合併的版本上的文件內容,並告訴我們是否確實如此?

+0

這看起來像一個評論而不是答案。 – soundslikeodd