Here I collect useful git commands that I use very often. I don’t go into details. It’s just a convenient list to look up commands.

Commits

Add changes to previous commit:

git commit --amend

Undo last commit, but keep changes:

git reset --soft HEAD~1

To avoid that changes of specific files get committed (e.g. for local configurations, etc.):

git update-index --assume-unchanged .config/params.cnf

Branches

Checkout single file form another branch:

git checkout otherBranch -- file.kt

Diff of a file on other branch:

git diff release/1.0.0 release/2.0.0 -- app/build.gradle

Rename branch (locally):

git branch -m new-name

Delete remote branch:

git push origin --delete $BARNCH_NAME

Overwrite local branch with remote changes (a.k.a. “force pull”):

git fetch --all
git reset --hard origin/$BARNCH_NAME

Tags

Create a tag:

git tag $TAG_NAME

List tags:

git tag --list

Push tag:

git push origin $TAG_NAME

Remove local tag:

git tag -d $TAG_NAME

Remove remote tag:

git push origin :refs/tags/$TAG_NAME

Untracked files

Show untracked files (that will be deleted by git clean):

git clean -n

Delete untracked files and folders:

git clean -fdX

Remove empty directories:

find . -type d -print | xargs rmdir 2>/dev/null