Introduction:
In our previous tutorial , we have learnt basics of git and how to create, commit and push to git . In this tutorial, we will learn about “Branching” and some other useful commands .
What is Git Branching :
Git doesn’t store only the new changes, but it stores a snapshot of the data on each commit. One commit object is created that contains a pointer to the snapshot of the content. If you have made 3 commits on the same branch, it looks something like below :
Ok…so what is Git branching ?? Branch is simply a lightweight movable pointer to one of these commits. Default branch name is “master” in git. Everytime we commit new changes, it moves to the latest.
How does git know on which branch we are currently on ?? It keeps a pointer “HEAD” , that moves automatically if we checkout new branch.
Let’s create one new branch “test”.
$ git branch test
Currently we have two branches “master” and “testing” and we are on “master” . So HEAD will point to the “master” branch :
Checkout to branch “test” :
$ git checkout test
Now “HEAD” will point to the “testing” branch.
Commit one new change on this “test” branch . ( As discussed in our previous tutorial)
Final view will be like :
Now we have two branches “master” ,“test” and we have different commits on both of these branches.
In our last step, we will checkout back to the “master” branch, merge all changes from “test” branch to the master and finally delete this “test” branch.
//checkout back to master branch
$ git checkout master
//Merge changes in master:
$ git checkout master
$ git merge test
//Delete test branch:
$ git branch -d hotfix
Some useful Commands :
//Check branch and branch pointers
$ git log --oneline --decorate
//To check history of commits from different branches
$ git log --oneline --decorate --graph --all
//To create a branch and switch to it at the same time
$ git checkout -b test
//This is shorthand for
$ git branch test
$ git checkout test