- Pull before push
- Diff before merge
- Commit often
- Commit complete work
- Write descriptive commit messages
- Branch extensively
- Use feature branches
- Do pull requests
- Prefer rebase instead of merge commits
- Version control is not a backup system
- Don't commit config files
- Don't create very large repos
- Run git clean -n before git clean -fd
- git fetch
- git merge
- git rebase branch-to-rebase-to
- git rm file-name
- git rm --cached file-name
- git clean -fd
- git mv old-file-name new-file-name
- git mv old-file-name new-directory-name
- git reset HEAD file-name
- git checkout --file-name
- git grep 'STRING'
- git grep -n 'STRING'
- git blame file-name
- git show commit-id
- git bisect start
- git bisect good last-known-good-commit
- git bisect bad last-known-bad-commit
- git bisect good
- git bisect bad
- git bisect reset