Squash a serie of commits and rewrite the history by writing them as one

git rebase -i

this puts you in the interactive rebasing tool.

Type s to apply squash to a commit with the previous one. Repeat the s command for as many commits as you need.

Take a commit that lives in a separate branch and apply the same changes on the current branch

single commit:

git cherry-pick <commit>

for multiple commits:

git cherry-pick <commit1> <commit2> <commit3>

Restore the status of a file to the last commit (revert changes)

git checkout -- <filename>

Show a pretty graph of the commit history

git log --pretty=format:"%h %s" --graph

Get a prettier log

git log --pretty=format:"%h - %an, %ar : %s"

Get a shorter status

git status -s

Checkout a pull request locally

git fetch origin pull/<id>/head:<branch>

git checkout <branch>

List the commits that involve a specific file

git log --follow -- <filename>

List the commits that involve a specific file, including the commits content

git log --follow -p -- <filename>

List the repository contributors ordering by the number of commits

git shortlog -s -n

Undo the last commit you pushed to the remote

git revert -n HEAD

Pick every change you haven’t already committed and create a new branch

git checkout -b <branch>

Stop tracking a file, but keep it in the file system

git rm -r --cached

Get the name of the branch where a specific commit was made

git branch --contains <commit>

Want to hire me?

I'm currently considering remote job/contract opportunities as a Frontend Developer.

Read more about me and if you're interested, get in touch.