Hi, I´m not sure if this is a bug or not. These are the steps to reproduce it (git 2.17 at least): - In a repo, with default settings (merge strategy, conflict style, merge drivers, etc); - Create a file 'test.xml', and add the following content to it: [div] A [/div] - Perform a git add and git commit, then, create a branch named branch1; - Next, on branch1, edit the xml file and add a new div: [div] A [/div] [div] B [/div] - Then, comit the changes, and after that return to branch master; - So, perform a similar but slightly different change: [div] A [/div] [div] C [/div] - Then commit it; - Now, do a merge (git merge branch1); When my conflictStyle is default (merge), the merged file becames: [div] [[[[[[[ HEAD C ======= B ]]]]]]] branch1 [/div] But when the merge.conflictStyle is set to diff3, I get: [[[[[[[ HEAD [div] C [/div] ||||||| merged common ancestors ======= [div] B [/div] ]]]]]]] branch1 I guess, most times the second behavior is the expected: two conflict hunks, not only the divvergent pieces (this case, the second line) of them. By the doc: merge.conflictStyle Specify the style in which conflicted hunks are written out to working tree files upon merge. The default is "merge", which shows a [[[[[[[ conflict marker, changes made by one side, a ======= marker, changes made by the other side, and then a ]]]]]]] marker. An alternate style, "diff3", adds a ||||||| marker and the original text before the ======= marker. I replaced the 'lower than' and 'greater than' symbols by 'open n close square brackets' to avoid antivirus. Is this a bug, or something I missunderstood from git docs? Thanks, Adilson de Almeida Jr