Useful GIT Commands

This is collection of useful GIT commands I use in my day today work. Just posting here to keep as my own reference.

Revert changes made to your working copy:

git checkout .

Revert changes made to the index (i.e., that you have added):

git reset

Revert a change that you have committed, do this:

git revert ...

View commits not yet pushed to remote:

git log --branches --not --remotes

Not pushed most recent commit with branch name:

git log --branches --not --remotes --simplify-by-decoration --decorate --oneline

Difference between two branches:

git diff --stat --color master..branch 

Here the order of branch name is merge-target..merge-source.

Create remote tracking branch:

git branch --track feature1 origin/my-remote-branch

Here git fetch/pull from feature1 branch will get the updates from my-remote-branch

Create new local branch from remote branch:

git branch --no-track feature2 origin/master

Push local branch to remote repository:

git push origing feature2

Checkout specific file from differrent branch:

git checkout remote/branch path/to/file