git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/7] [doc] Add new gitmergeconflicts man page

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 2, 2026, 17:58 UTC
Message-ID
<xmqqbj9cvvaa.fsf@gitster.g>
In-Reply-To
<xmqqqzia8ohv.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 16 quoted lines
>>>> +FRUITS = [
>>>> +    "apple",
>>>> +<<<<<<< HEAD
>>>> +    "cherry",
>>>> +=======
>>>> +    "banana",
>>>> +>>>>>>> add-fruit
>
>> Every time I show people diff3 someone tells me how happy they
>> are to learn it :)
>
> Yes, we should encourage "merge.conflictstyle=diff3" (I feel about
> this strongly enough to think it should become the default).
> Knowing what the original was before one side wanted to say "cherry"
> while the other side wanted to say "banana" sometimes helps a great
> deal to decide what to do with the conflict.

Before I forget, here is a good illustration to tell why diff3 style is often essential to correct conflict resolution that we can tell new users. You may want to throw it in to your new manual pages.

If the conflict looks like this
        FRUITS = [       
            "apple",     
        <<<<<<< HEAD     
            "cherry",    
	|||||||
        =======          
            "banana",    
        >>>>>>> add-fruit

then we can tell that in the beginning there was only 'apple', and one side wanted to add 'cherry', while the other side wanted to add 'banana'. It is likely that we would make both sides happy by adding both of them.

But on the other hand, if the conflict looks like this
        FRUITS = [       
            "apple",     
        <<<<<<< HEAD     
            "cherry",    
	|||||||
	    "banana",
	    "cherry",
        =======          
            "banana",    
        >>>>>>> add-fruit

we can tell that before two sides started editing, we had 'apple', 'banana', and 'cherry'. While both wanted to keep 'apple', one side did not want 'banana', and the other side did not want 'cherry'. It is plausible that we can please both of them by removing these two.

With just two-sides, the user who is trying to resolve the conflict cannot tell the difference.

Previous: Julia EvansNext: Julia Evans
Message 10 of 46 in “[doc] Add new page on merge conflicts”
  1. 0/7 [doc] Add new page on merge conflictsJulia Evans via GitGitGadget, Sep 24, 2026
  2. 1/7 [doc] Add new gitmergeconflicts man pageJulia Evans via GitGitGadget, Sep 24, 2026
  3. Junio C HamanoSep 24, 2026
  4. Junio C HamanoSep 24, 2026
  5. Patrick SteinhardtSep 30, 2026
  6. Julia EvansSep 30, 2026
  7. Junio C HamanoSep 30, 2026
  8. Patrick SteinhardtOct 1, 2026
  9. Julia EvansOct 1, 2026
  10. Junio C HamanoOct 2, 2026
  11. Julia EvansOct 5, 2026
  12. Junio C HamanoOct 5, 2026
  13. Julia EvansOct 5, 2026
  14. 2/7 [doc] git-merge: link to new merge conflicts guideJulia Evans via GitGitGadget, Sep 24, 2026
  15. D. Ben KnobleSep 25, 2026
  16. Julia EvansSep 25, 2026
  17. Junio C HamanoSep 25, 2026
  18. Ben KnobleSep 25, 2026
  19. Junio C HamanoSep 25, 2026
  20. Ben KnobleSep 25, 2026
  21. Julia EvansOct 2, 2026
  22. Junio C HamanoOct 2, 2026
  23. Julia EvansOct 2, 2026
  24. Junio C HamanoOct 2, 2026
  25. D. Ben KnobleOct 3, 2026
  26. Junio C HamanoOct 3, 2026
  27. Patrick SteinhardtSep 30, 2026
  28. 3/7 [doc] git-rebase: link to new merge conflicts guideJulia Evans via GitGitGadget, Sep 24, 2026
  29. 4/7 [doc] git-revert: link to new merge conflicts guideJulia Evans via GitGitGadget, Sep 24, 2026
  30. 5/7 [doc] git-cherry-pick: link to new merge conflicts guideJulia Evans via GitGitGadget, Sep 24, 2026
  31. Junio C HamanoSep 25, 2026
  32. Julia EvansSep 28, 2026
  33. Junio C HamanoSep 28, 2026
  34. 6/7 [doc] git-pull: link to new merge conflicts guideJulia Evans via GitGitGadget, Sep 24, 2026
  35. 7/7 [doc] ignore conflict markers in gitmergeconflicts.adocJulia Evans via GitGitGadget, Sep 24, 2026
  36. Junio C HamanoSep 24, 2026
  37. Jeff KingSep 24, 2026
  38. Julia EvansSep 28, 2026
  39. Jeff KingSep 29, 2026
  40. Junio C HamanoSep 29, 2026
  41. D. Ben KnobleSep 25, 2026
  42. Julia EvansOct 2, 2026
  43. D. Ben KnobleOct 3, 2026
  44. Julia EvansOct 5, 2026
  45. D. Ben KnobleOct 6, 2026
  46. D. Ben KnobleOct 6, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.