Course Overview
This course is full of energy and aimed at people with little or no understanding of git basics and want a more confidence and a deeper knowledge of this area. This course is highly recommended if you want to advance beyond the typical "edit-add-commit".
Course Prerequisites
Students should be familiar with general software development principles.
Outline
This course provides students with a thorough overview of working with GIT on a project. The course covers day-to-day usage as well as advanced topics.
Introduction, Principles and Fundamentals
- GIT installation and configuration
- Using GIT as a "Server"
- Git as a Directed Acyclic Graph (DAG) of commits.
- Difference between HEAD, index and working tree
Day to Day Git
- Developer's day-to-day GIT
- Crafting commits
- Understanding Branching and Merging (and how they differ from other VCs)
- Sharing your work
- Cloning
- Understanding Remotes
- Understand Fetching and Pushing
Git in a Team
- Different GIT collaboration strategies
- Discuss various GIT Workflows
Advanced Topics
- reverting your work
- Resetting: soft, mixed and hard
- Stashing your work
- (No-)fast-forward merge
- Rewriting history: Why? When? DOs and DON'Ts
- Amending commits
- Rebasing
- Interactive rebase
- Force push
- Unreachable commits and the reflog
- Garbage collection
- Bisecting