===== Outline ===== * Debugging source code using Git bisection * Resolving merge conflicts * Advanced rebasing techniques and repo reconstruction * Using worktrees * Registering and working with other remotes * How to work with submodules and subtrees * Using client-side hooks * The varieties of Git workflow * GitHub workflow ===== Prerequisites ===== It is expected that anyone taking this advanced course is already moderately comfortable working with Git, and should understand at least the following topics: * how to clone an existing Git repository * how to create a new repository * how to change, stage and commit local work * how to undo local work with ''git reset'' and ''git checkout'' * how to create, work with and merge local branches * how to manipulate local tags