2012-05-20 15 views
0

在通過GIT中產生的衝突解決文件中,只有通用代碼應顯示標記(「< < < < < < <我們的外 - 」 >>>> >>>他們') - 正確?!僅本地文本段顯示在衝突文件以外的標記

我有一個CSS文件,其中包含我在本地版本中插入的評論,並且發生了衝突,此評論片段列在標記之外。

這發生在普通樣式和diff3樣式(包括基本段)。

當使用可視化工具(p4merge在我的情況)時,所述文本段僅在本地顯示,但不在基本或遠程顯示。

還檢查:

git checkout --theirs <file-name> 
--> said segment not there 

git checkout --ours <file-name> 
--> said segment there 

git checkout -m <file-name> 
--> said segment outside markers 

所以,這是怎麼回事?

回答

1

如何「關閉」是文件中有衝突的部分「僅本地」更改?

您的「僅限本地」更改可能與文件部分附近沒有文本衝突,並且文件的該部分會自動合併。

例如,假設你開始對分支A和一個名爲README文件,該文件是這樣的:

README 

foo 

bar 

然後你fork一個新的分支B.在分支B,你改變README看起來像

README 

foo 

baz 

並提交它。現在你切換回分支A,和你做兩個修改和提交,所以分支A的README文件看起來像:

README 

frotz 

foo 

qux 

現在合併B插入答:這是你(使用diff3的衝突類型)的內容:

README 

frotz 

foo 

<<<<<<< HEAD 
qux 
||||||| merged common ancestors 
bar 
======= 
baz 
>>>>>>> B 

正如你所看到的,git會自動合併文件的第一部分,但是會在第二部分中打開。