repository, branches, commits
remote vs. local
Hashes
Step 1 : You modify a file from the working directory.
Step 2 : You add these files to the staging area.
Step 3 : You perform commit operation that moves the files from the staging area. After push operation, it stores the changes permanently to the Git repository.
think judiciously about .gitignore
employ pre-push hooks
diff
—name-only
add
commit
commit messages
push
git log
..
reset
HEAD and ~ vs ^
git aliases
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
merging and rebasing
cherry-pick
revert
blame
pitfalls
clean
-fdi
stash
stash pop
—keep-index
gitk
git bisect
reflog
THREE LEVELS OF TRIAGE