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

Re: Question about about a trivial merge conflict that git should resolve alone

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Oct 23, 2015, 14:52 UTC
Message-ID
<alpine.DEB.1.00.1510231651270.31610@s15462909.onlinehome-server.info>
In-Reply-To
<CAC9WiBj7Vwfjzbik7+d9cxpS=m+_s-CViJ3b4fKAzYQ4ixXfiw@mail.gmail.com>
Hi Francis,
On Fri, 23 Oct 2015, Francis Moreau wrote:
Show 32 quoted lines
> I have a simple merge conflict use case:
> 
> $ mkdir foo
> $ cd foo/
> $ git init
> $ echo line1 > a
> $ git add .
> $ git commit -q -m init
> $ echo line2 >>a
> $ git commit -a -q -m "add line2"
> $ git checkout -b foo HEAD~1
> $ git cherry-pick -x master
> $ echo line3 >>a
> $ git stage a
> $ git commit -q -m "add line3"
> $ git checkout master
> $ git merge foo
> $ git diff
> diff --cc a
> index c0d0fb4,83db48f..0000000
> --- a/a
> +++ b/a
> @@@ -1,2 -1,3 +1,6 @@@
> line1
> line2
> ++<<<<<<< HEAD
> ++=======
> + line3
> ++>>>>>>> foo
> 
> Why does git think there's a conflict here since the "line2" string
> was added in both branch by the same commit ?

This is intentional, because what actually happens is that Git figures out that line2 & line3 were added in one branch, but only line2 in the other, and it helpfully reduces the conflict to the difference between the two.

The rationale is that you do not know which version is correct: was line2 sufficient, or do you really also need line3?

Ciao, Johannes

Previous: Francis Moreau
Message 2 of 2 in “Question about about a trivial merge conflict that git should resolve alone”
  1. Francis MoreauOct 23, 2015
  2. Johannes SchindelinOct 23, 2015

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.