A tool for distributed version control. It saves annotated snapshots (diffs) of a directory. Each snapshot is called a “commit”. It it designed for code.
Powerful, with a poor user interface.
$ git status
$ git diff filename
$ git add
$ git commit
$ git checkout commit|branch
HEAD is a name for the currently checked out commit - The commit you are working on top of.
$ git branch name # vs git checkout -b name
$ git merge
A special kind of branch that tracks a remote git repository
$ git clone url
$ git remote -v
$ git pull remote branch
$ git push remote branch
$ git reset HEAD~3
$ git revert
$ git cherry-pick commit ...
$ git rebase -i commit|branch
Compress your images!