Lets learn to resolve merging conflicts
Let us go back to the style branch and merge it with a new master branch.
RUN:
git checkout style
git merge master
RESULT:
$ git checkout style
Switched to branch 'style'
$ git merge master
Auto-merging lib/hello.html
CONFLICT (content): Merge conflict in lib/hello.html
Automatic merge failed; fix conflicts and then commit the result.
If you open the lib/hello.html
you will see:
FILE: lib/hello.html
<!-- Author: kwikl3arn (kwikl3arn@gmail.com) -->
<html>
<head>
<<<<<<< HEAD
<link type="text/css" rel="stylesheet" media="all" href="style.css" />
=======
<!-- no style -->
>>>>>>> master
</head>
<body>
<h1>Hello,World! Life is great!</h1>
</body>
</html>
The first section is the version of the current branch (style) head. The second section is the version of master branch.
You need to resolve the conflict manually. Make changes to lib/hello.html
to achieve the following result.
FILE: lib/hello.html
<!-- Author: kwikl3arn(kwikl3arn@gmail.com) -->
<html>
<head>
<link type="text/css" rel="stylesheet" media="all" href="style.css" />
</head>
<body>
<h1>Hello, World! Life is great!</h1>
</body>
</html>
RUN:
git add lib/hello.html
git commit -m "Merged master fixed conflict."
RESULT:
$ git add lib/hello.html
$ git commit -m "Merged master fixed conflict."
Recorded resolution for 'lib/hello.html'.
[style 645c4e6] Merged master fixed conflict.
Git has no graphical merging tools, but it will accept any third-party merge tool (read more about such tools on StackOverflow.)