SELF-GUIDED PRACTICE

Get your hands on Git.

Follow the setup in your own terminal, work toward the goal, and mark each exercise complete at your own pace.

Practice in your own terminal. Follow the setup, work through the task, and mark it complete when you’re satisfied. Completion is your own record; the website does not inspect your work.

0 of 29 completed

  1. 1

    Start here · 5 min

    Make your first commit

    Turn an untracked practice note into a saved snapshot.

    Not completedOpen task →
  2. 2

    Foundations · 10 min

    Commit one file, leave the other alone

    Save a release note without including a private draft.

    Not completedOpen task →
  3. 3

    Foundations · 5 min

    Stage only the release change

    Prepare one change without including an unfinished draft.

    Not completedOpen task →
  4. 4

    Foundations · 10 min

    Commit only the intended staged file

    Both files are staged, but only one belongs in the release.

    Not completedOpen task →
  5. 5

    Foundations · 5 min

    Keep the scratch edit out

    Remove a file from the next commit without losing its edits.

    Not completedOpen task →
  6. 6

    Foundations · 8 min

    Leave generated files behind

    Add useful ignore rules without hiding ordinary source files.

    Not completedOpen task →
  7. 7

    Foundations · 10 min

    Untrack a file without deleting it

    An ignore rule was added after a log had already been committed.

    Not completedOpen task →
  8. 8

    Foundations · 10 min

    Record a script as executable

    Store executable permission in Git’s index, including on Windows.

    Not completedOpen task →
  9. 9

    Remotes · 10 min

    Push to a practice remote

    See what a push transfers using a local bare repository.

    Not completedOpen task →
  10. 10

    Branches · 10 min

    Catch up without a merge commit

    Advance main to work that is already ahead of it.

    Not completedOpen task →
  11. 11

    Branches · 10 min

    Keep both sides of a merge

    Resolve a conflict by understanding what each branch changed.

    Not completedOpen task →
  12. 12

    Recovery · 10 min

    Pause a draft for an urgent fix

    Protect unfinished work while making a separate repair.

    Not completedOpen task →
  13. 13

    Branches · 10 min

    Replay your work after a hotfix

    Put a local documentation change on top of the updated main.

    Not completedOpen task →
  14. 14

    History · 5 min

    Give the last commit a useful name

    Repair a local commit message while preserving its contents.

    Not completedOpen task →
  15. 15

    History · 10 min

    Fix the last snapshot and its message

    Correct a typo without adding another history entry.

    Not completedOpen task →
  16. 16

    History · 10 min

    Correct a filename’s capitalization

    Make a case-only rename that also works on Windows.

    Not completedOpen task →
  17. 17

    Recovery · 5 min

    Recover the deleted runbook

    Restore one tracked file while preserving another unfinished edit.

    Not completedOpen task →
  18. 18

    Recovery · 10 min

    Recover the commit you replaced

    Find the original snapshot after an accidental amend.

    Not completedOpen task →
  19. 19

    History · 8 min

    Undo a change without erasing history

    Create an inverse commit instead of moving the branch backwards.

    Not completedOpen task →
  20. 20

    History · 10 min

    Set dates on a disposable commit

    Understand author and committer timestamps in local history.

    Not completedOpen task →
  21. 21

    History · 10 min

    Split a mixed commit into two

    Give unrelated files their own history entries.

    Not completedOpen task →
  22. 22

    History · 10 min

    Combine the unfinished checkpoints

    Replace three local WIP commits with one coherent change.

    Not completedOpen task →
  23. 23

    History · 10 min

    Commit two edits from one file separately

    Use patch staging to separate independent configuration changes.

    Not completedOpen task →
  24. 24

    Advanced history · 10 min

    Repair an earlier documentation commit

    Fold a typo correction into its original commit while keeping later work.

    Not completedOpen task →
  25. 25

    Advanced history · 10 min

    Assemble selected features

    Cherry-pick two small features and squash a third branch.

    Not completedOpen task →
  26. 26

    Advanced history · 10 min

    Move only the fix to the release branch

    Detach two useful commits from unrelated topic work.

    Not completedOpen task →
  27. 27

    Advanced history · 10 min

    Put prerequisite work first

    Repair the order of two independent local changes.

    Not completedOpen task →
  28. 28

    Advanced history · 10 min

    Find and clean a word throughout local history

    Use history search, then rewrite each affected snapshot.

    Not completedOpen task →
  29. 29

    Investigation · 10 min

    Find the first broken revision

    Let a repeatable test locate a regression in twelve changes.

    Not completedOpen task →

Git topic coverage inspired by Git Exercises by Wojciech Frącz and Jacek Dajda. OpsRung uses original scenarios and local fixtures; completion is your own record.

← All practice tracks