Skip to main content

Merging Branches

Merging branches is a fundamental operation in Git. It allows you to integrate changes from one branch into another. This is a crucial step in many workflows, and understanding how to do it effectively can streamline your development process.

What is Merging in Git?

The merge operation in Git creates a special commit that has two unique parent commits. It effectively joins two or more development histories together. The git merge command allows you to take the contents of another branch and integrate them with your current branch.

Creating a New Branch

Before we talk about merging, let's first create a new branch. Use the git branch command followed by the name of your new branch. This will create a new branch with that name.

git branch new-branch

To switch to this branch, you can use git checkout followed by the name of the branch.

git checkout new-branch

Making Changes to the Branch

Now that we have a new branch, let's make some changes to it. For the sake of simplicity, let's add a new file to the branch. You can do this using the touch command followed by the name of the file.

touch newfile.txt

After adding the file, you'll need to stage and commit the changes.

git add newfile.txt
git commit -m "Add new file"

Merging the Branch

Now that we have a new branch with some changes, let's merge it into the master branch. First, switch back to the master branch.

git checkout master

Then, use the git merge command followed by the name of the branch you want to merge.

git merge new-branch

This will merge the changes from new-branch into the master branch. If there are no conflicts, Git will automatically create a new commit in the master branch that includes the changes.

Handling Merge Conflicts

Sometimes, Git can't automatically merge changes. This happens when the same part of a file is modified in both branches. This is known as a merge conflict.

When a merge conflict occurs, Git will pause the merge process and ask you to resolve the conflicts. The conflicting area in the file will be marked like this:

<<<<<<< HEAD
Changes made on the branch that is being merged into. In most cases, this is the master branch.
=======
Changes made on the branch that is being merged. In our case, this is the new-branch.
>>>>>>> new-branch

To resolve the conflict, you need to choose which changes to keep. You can do this by deleting the lines you don't want and keeping the ones you do. Once you're done, you need to stage the file with git add and then continue the merge with git commit.

Conclusion

Merging branches in Git is a simple but powerful tool that allows you to integrate changes from multiple sources. Understanding how to do it effectively can make your development process smoother and more efficient. Whether you're working on a small project or a large codebase, mastering the art of Git merging is an essential skill for any developer.