You are probably here because you, like me and possibly every or almost every developer, had a merge conflict in that one feature Pull Request you you have been working on. Am I right? Then you are in the right place to learn how to tackle that merge conflict and procceed with your work.
But before we jump right into merge conflicts and how to tackle them, let's talk about the Git workflow to have a bit more context.
The Git workflow is quite easy to understand once you begin to have more experience using it in your projects. Below you can see a great overview of a simple Git workflow. This one is specifically for GitHub, but the same approach is applied to other version control platforms such as GitLab, in case that is what you are using.
The first step in a gitflow is to create a feature
branch, where you will
commit all the code changes you want to make in the repository. Then, you open a
pull request where you will be able to track all the
merge after you have made sure everything looks alright and GitHub
actions finishes running all the
tests you have set up to be
merged in the
This is the question for 1.000.000$ 🤑 A merge conflict happens when we make changes to the codebase and another developer does so too, and we want to merge their changes to our branch, but they create a conflict because there have been changes to the same file or line of code. Let’s simulate a simple case scenario first and then explain how to actually solve a merge conflict. It will surely be clearer after you have seen how a merge conflict actually happens.
The first step is to create a Git repository. You can do so by running the following command:
alert("Hello from the main branch!")
Then run the following commands to push the code to your repository:
git add . // this will stage the changes you have made to your file
git commit -m "Made my first changes on the main branch"
Let's now checkout to the branch that will create the conflict on
git checkout -b new-branch
alert("Hello from the new branch!") alert("I will create a merge conflict.")
Then, git add, commit and push.
After creating the new branch where we made the changes to the file, let's checkout back to the
git checkout main
alert("Hello from the main branch!") alert("Now I have made a conflict!")
Then, git add, commit and push.
In order to create the merge conflict, run the following command:
git merge new-branch
Now that you have tried to merge, you should get something similar to this warning telling you that you have a merge conflict:
Now that we have a merge conflict and before we freak out to the point of calling the ambulance 🚨, you can either
git merge --abort 🙈 or resolve the merge conflict 😎 We will go with the last one. In order to resolve a merge conflict, you can either make use of the options on top of the code in the screenshot from the previous section (
Accept Current Change,
Accept Incoming Change,
Accept Both Changes,
Compare Changes), or choose the changes manually. Let's make some changes and get rid of the strange merge conflict stuff:
alert("Hello from the main branch!") alert("I will create a merge conflict!")
Now, run git add, commit and push the code. Then, run git status to confirm whether the conflict has been resolved.
You should have been able to resolve the merge conflict now 👏
Here are some resources I would recommend you checking out in order to get more in depth with merge conflicts.
It is also recommended to practice by creating git repositories and trying to merge branches to get more used to resolving merge conflicts.
Thank you very much for reading this article! I hope it was helpful and I look forward to your thoughts on the comments and to seeing you in my next article!😉