Git Tutorial
Resolving Conflicts in git
Lets learn to resolve merging conflicts
Step1:Merge the master branch with style
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 ([email protected]) -->
<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.
Step2:Resolution of the conflict
You need to resolve the conflict manually. Make changes to lib/hello.html
to achieve the following result.
FILE: lib/hello.html
<!-- Author: kwikl3arn([email protected]) -->
<html>
<head>
<link type="text/css" rel="stylesheet" media="all" href="style.css" />
</head>
<body>
<h1>Hello, World! Life is great!</h1>
</body>
</html>
Step3:Make a commit of conflict resolution
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.
Step4:Advanced Merging
Git has no graphical merging tools, but it will accept any third-party merge tool (read more about such tools on StackOverflow.)