Git Branching and Merging

When you commit your staging into Git, you are essentially saving your changes into the current branch. Git allows developers to create multiple copies of a repo that represents different lines of development from the same source code. When a repo is initialized, a default branch named master is automatically created and used as the active branch. We can see the current active branch in the Git Bash interface, or by running git status

To create a new branch, we can use the branch command

$ git branch develop

Then we can switch the current active branch with checkout command

$ git checkout develop

The new branch will be created using the latest commit made from the previous branch. In this case, master will be a copy of develop. Let’s make some changes in develop branch

$ echo "A test file" > DEVELOPFILE.txt

Now add it to staging and commit it. To add all files without typing the name, you can use git add .

$ git add .
$ git commit -m 'commit develop'

Create another branch named feature and checkout into it. Alternatively, we can use the checkout command to create a new branch and checkout at the same time.

$ git checkout -b feature

Now if you run git log, it will show the commit from develop repo. But if you checkout into master and run git log, the same commit will not appear.

Just remember that a new branch will always take the commit history of the previously active branch, so if you want to create branches from master and not develop you need to first make sure the active branch is master before checking out.

Merging branches

Now that develop branch has committed its changes, we can update master branch so that it receives update from develop branch. A merge is the process of updating the currently active branch with changes from the target branch. For example, let’s merge develop into master branch.

$ git merge develop

This will update our master branch to be even with develop branch.

Take your skills to the next level ⚡️

I'm sending out an occasional email with the latest tutorials on programming, web development, and statistics. Drop your email in the box below and I'll send new stuff straight into your inbox!

No spam. Unsubscribe anytime.