Start from the beginning and learn the basics ideas and philosophy of Git and then put them to use on the command-line.
On completion of the course, students will have a firm grasp of the most important features of the Git command-line, how to make branches, merge branches and deal with merge conflicts, push and pull from remotes,
* Git Concepts
* Content Tracking
Goal: Students will understand the fundamental use cases for Git
* Comparison to other Version Control Systems
Goal: Students will understand the key similarities and
* differences between CVS, Subversion and Mercurial.
* Data Integrity
Goal: Students will understand how Git protects against data
corruption and forging history
* Repositories
Goal: Students will understand the Git repository structure and how
they related to branches and commits
* Git Operations
* Creating a new local repository
Goal: Students will understand how to create new Git repository
* Commits and SHA1s
Goal: Students will understand how to stage a Git commit and the
commonly-used command-line options. Additionally, students will
understand SHA1s and how they related to commits.
* Branches, merging and conflicts
Goal: Students will understand how to make Git branches, merge
branches together and how to deal with merge conflicts
* Remotes
Goal: Students will understand how to add and remove remotes
* Pushing and Pulling
Goal: Students will push their own commits from the their local
repository to a remote and understand the various command-line flags
and what effects they have.
* Exploring History
Goal: Students will understand various techniques to browse through
Git history as well as search for certain keywords in the history
* Using the Stash
Goal: Students will understand how to quickly change between tasks
with the stash and various operations the stash supports
* Reading the Git documentation
Goal: Students will understand how to find what they are looking
for in the Git documentation
* Configuring and Customizing Git
* Git Networking
Goal: Students will understand the various networking protocols
that Git supports and which are best suited for various situations
* SSH Setup
Goal: Students will understand how to create, manage and replace
their SSH keys they use for Git
* What is Git, on the inside?
Goal: Students will understand the structure of the .git/ directory
and how the internal Git database works
* Introduction to Git Hooks
Goal: Students will understand how to use pre-commit hooks to
enforce requirements and post-receive hooks to execute code when
a remote receives pushes. A brief overview of other hooks will
also be described.
* Optimizing Git with aliases
Goal: Students will understand how to optimize their workflow by
creating aliases and automating common operations
* Git workflows
* Branching Strategies for A Single Team
Goal: Students will understand various ways of using branches on a
single team
* Branching Strategies for Multiple Teams
Goal: Students will understand various ways of using branches on
larger groups of multiple teams/departments/organizations
Basic understanding of the Unix command-line, such as traversing directories and editing configuration files.
Leto Labs LLC 2015
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
The author is very much open to licensing this material under different licenses. Please contact duke@leto.net to start the conversation.
