git init /git clone /git config
git add / git commit / git diff / git stash / .gitignore
Very basic creation of commits.
interacting with the stage (index).
The first stride into stashing.
The basics of using the .gitignore
file.
git status / git tag / git blame
git checkout / git clean / git revert / git reset / git rm
Cleaning the workspace.
The first stride into branching.
Cleaning up a bit.
Reset is a powerful and slightly dangerous command if you do not know what you are doing. Go trough the three modes of resetting here.
Git commit --amend and other methods of rewriting history
##amend
We might have created our commits in a suboptimal order, practice to fix that scenario here.
A lot of small commits is good when you are working locally, but for sharing your code, it might be more beneficial to deliver your code changes in large sets. Go here to experiment with that.
Should you accidentally or on purpose delete a commit, go here to try and save it.
git branch / git checkout / git merge
The first stride into branching.
A basic merge between diverging branches with incompatible changesets.
A tour around the most trivial of merges.
A basic merge, involving multiple diverged branches.
A merge conflict with actual code.
A merge has to be reverted, but this causes problems.
An administrative exercise, how do we move a commit that we accidentally put on the wrong branch.
Another exercise on what to do if you have accidentally committed on the wrong branch.
Using rebase as an alternative to merging.
A quick exercise in using Git hooks.
Submodules are loathed by many. Run through this exercise to see what the ruckus is all about.
Discover what is going on in a Git repo, figure out what it looks like under the hood.
A small exercise into Git internals.