Ämnesområden Advanced GIT

Day 1 
Yo, DAG

  • A DAG refresher
  • Blobs, trees, and commits
  • Why SHA-1s and not version numbers
  • Specifying revisions and commit ranges
  • Viewing old revisions of files
  • The index, revisited
  • Atomic commits
  • Valuing the version history

Branches, shoots, and leaves

  • Creating, moving between and deleting branches
  • HEAD and detached HEAD mode
  • Working with remotes
  • Remote branches and refspecs
  • Tags, lightweight and annotated
  • Tags and remotes
  • Tags and branches under the hood
  • The describe command

All your rebase…

  • A merging refresher
  • pull = fetch + merge
  • The undesirability of merge commits
  • Rewriting history
  • The push/rebase tension
  • cherry-picking commits
  • Interactive rebasing

Wrappers and graphical tools: a quick overview

  • GitHub
  • Gists
  • Gerrit
  • gitk
  • Git Extensions
  • GitX

Day 2
Working with commits and changes

  • Patches
  • Stashing
  • The reflog
  • Recovering from mistakes
  • Searching the commit history efficiently
  • git-bisect

Working with branches

  • Types of branches
  • Merging strategies
  • Upstream/downstream relationships
  • In-house patches of upstream code
  • Different team workflows

Hooks

  • The hooks directory
  • The why and how of git hooks
  • Some useful scenarios with hooks

Good to know

  • The reset command demystified
  • Common problems and their solutions
  • Git shortcomings