Git Cheatsheet

## See Also

Reset local branch and replace with remote

git fetch origin
git reset --hard origin/<branch>
git clean -f -d

Overwrite remote branch with local branch

git push origin <branch> -f

Revert a merge

git revert <sha1> -m <parentNumber>

ParentNumber: Under the commit in git log there should be a list of parent commits. The parent number is the index of the commit in this list. You can check which parent is which using git log <commit>.

Example

To revert the following commit to parent eefe424ab

commit 92163d393606d7a7a934c60267568fb5a6554ab820
Merge: eefe424ab 16d6f3adf

$ git revert 92163d393606d7a7a934c60267568fb5a6554ab820 -m 1

Reset a branch to remote

git checkout <branch>
git fetch origin
git reset --hard origin/<branch>

Check out specific commit

git checkout <sha1>

Squash commits

git rebase --interactive HEAD~N

Where N is the number of commits to squash.

Text editor pops up:

pick 0eaeb7 Commit1
pick 12a660 Commit2
pick 6d3940 Commit3

Change all but the first pick to squash:

pick 0eaeb7 Commit1
squash 12a660 Commit2
squash 6d3940 Commit3

Save & close. Text editor pops up allowing you to set a new commit message. Change, save & close.

Undo a commit

git reflog -3
git reset --soft HEAD@{1}

List local branches

git branch