June 2009
Intermediate to advanced
330 pages
9h 29m
English
As demonstrated by the previous example, there are instances when conflicting changes can’t be merged automatically.
Let’s create another scenario with a merge conflict to explore the tools Git provides to help resolve disparities. Starting with a common hello with just the contents “hello,” let’s create two different branches with two different variants of the file:
$git initInitialized empty Git repository in /tmp/conflict/.git/ $echo hello > hello$git add hello$git commit -m"Initial hello file"Created initial commit b8725ac: Initial hello file 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 hello $git checkout -b altSwitched to a new branch "alt" $echo world >> hello$echo 'Yay!' >> hello$git commit -a -m"One world"Created commit d03e77f: One world 1 files changed, 2 insertions(+), 0 deletions(-) $git checkout master$echo worlds >> hello$echo 'Yay!' >> hello$git commit -a -m"All worlds"Created commit eddcb7d: All worlds 1 files changed, 2 insertions(+), 0 deletions(-)
One branch says world, while the other says
worlds—a deliberate difference.
As in the earlier example, if you check out
master and try to merge the alt
branch into it, a conflict arises:
$ git merge alt
Auto-merged hello
CONFLICT (content): Merge conflict in hello
Automatic merge failed; fix conflicts and then commit the result.As expected, Git warns you about the conflict found in the hello file.
But what if Git’s helpful ...
Read now
Unlock full access