- configure-git - If git is not configured, some basic configuration steps
- basic-commits - Very basic creation of commits.
- basic-staging - Interacting with the stage (index).
- basic-branching - The first stride into branching.
- ff-merge - A tour around the most trivial of merges.
- 3-way-merge - A basic merge, involving multiple diverged branches.
- merge-conflict - A basic merge between diverging branches with incompatible (but simple) changesets.
- merge-mergesort - A merge conflict with actual code.
- rebase-branch - Using rebase as an alternative to merging.
- basic-revert - Use revert to revert a change
- reset - Reset is a powerful and slightly dangerous command if you do not know what you are doing. Go through the three modes of resetting here.
- basic-cleaning - Cleaning the workspace.
- amend - Amending previous commits.
- reorder-the-history - We might have created our commits in a suboptimal order, practice to fix that scenario here.
- squashing - 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. Write a good commit
- advanced-rebase-interactive - Practice using the interactive rebase commands.
- basic-stashing - The first stride into stashing.
- ignore - The basics of using the
.gitignore
file. And usinggit rm
. - submodules - Submodules are loathed by many. Run through this exercise to see what the ruckus is all about.
- git-tag - Tags are convenient for keeping track of commits that bump a version number. In this exercise, you will list, add and delete tags.
- commit-on-wrong-branch - If we accidentally put unpushed commits on the wrong branch, how do we effectively move them to another branch before our work on that branch.
- commit-on-wrong-branch-2 - Another exercise on what to do if you have accidentally committed on the wrong branch.
- reverted-merge - We revert a merge, but, after fixes are added to the merged branch, we want the changes from merge and the new fixes.
- save-my-commit - Should you accidentally or on purpose delete a commit, go here to try and save it. You will use the reflog.
- detached-head - git complains that you are in a "You are in 'detached HEAD' state". What do you do?
- git-attributes - .gitattributes file allows you to specify how git handles files, such as line endings in text files or how to diff a binary file.
- Bad-commit - Using
git bisect
to find a bad commit. - bisect - Another kata using
git bisect
. - pre-push - A quick exercise in using Git hooks.
- Investigation - Discover what is going on in a Git repo, figure out what it looks like under the hood.
- Objects - A small exercise into Git internals.
- merge-driver - Defining a custom merge driver.
- rebase-exec - Run tests on every commit using
git rebase --exec