Brian Mehrman

Git Tips



Git is a free version control system designed for both small and large projects.



Whenever I am working on a project with other developers I find that I need to rebase my feature branch with the common branch the rest of the team is using. This branch is usually called dev or ci.

$ git fetch

To make sure I have the latest branches I run a fetch to update all my local branches.

$ git rebase -i origin/dev my_branch

Rebase can work on local branches as well as remote branches. In the above example I rebased my branch on the remote version of dev. The -i flag stands for interactive. This allows me to check the commits that I am rebasing onto the dev branch.



$ git reset HEAD

This command will reset my current branch to whatever the latest commit is. This is a great way to clean up a branch and start from where you last committed.

$ git reset HEAD~

The ~ (tilde) character next to HEAD tells git to go back 1 commit. I use this command to remove bad commits. Resetting the commit will unstage the files from the previous commit.

Delete Branches

git branch -d my_branch

This will delete the branch named my_branch, only if the branch has been merged.

git branch -D my_branch

This will delete the branch even if the branch has not been merged.

git branch --list

Lists out all the branches that are local to your machine.

git branch -D $(git branch --list hot*)

This deletes all branches prefixed with hot