A collection of basic and advanced features which come in handy for developers but are not known or used by many among us.
First of all: don't be afraid of command line interfaces!
rewriting with interactive rebase and amend searching in the history https://git-scm.com/book/en/v2/Git-Tools-Searching
use submodules to include dependencies which have their own lifecycle (e.g. own npm or jar libraries)
- Reverting the last commit:
git reset HEAD^
- Stahsing and cleaning: https://git-scm.com/book/en/v2/Git-Tools-Stashing-and-Cleaning
- listing branches which have already been merged to the current branch:
git branch --merged
Binary search to find the commit which caused a regression bug between two releases
- delete all branches which have already been merged to the current branch (exclude master and development):
git config --global alias.rmbranches '!git branch --merged | egrep -v "(^\*|master|development)" | xargs git branch -d'
- pick whatever you find useful from one of many collections
Customize your bash/zsh shell to display the current branch or other useful context information, autocompletion for git aliases
Remove local branches no longer on remote