1. Commit often
  2. All is not Lost
    1. git log -g
    2. git fsck –unreachable
    3. git stash list
  3. Backups
    1. Although a clone is a backup it does not include git configs, working directory/index, non-standard refs, or dangling objects.
  4. Once you push, don’t change history.
  5. Choose a Workflow
  6. Logically divide into repositories
  7. Useful commit messages
  8. Stay up to date
    1. Rebasing
    2. git pull –rebase
    3. git merge –no-ff
  9. Maintenance
    1. git fsck
    2. git gc –aggressive
    3. git remote update –prune
    4. git stash list
  10. Enforce standards
    1. Regression tests
    2. Complication tests
    3. Syntax/link checkers
    4. Commit message analysis
  11. Useful Tools
    1. gitolite
    2. gitslave
    3. gerrit
  12. Integrate with external tools
  13. Always name your stashes
  14. Protect against history rewriting