How-toVersion ControlDoneStarted
Undo the last Git commit: reset, revert and restore
Three ways to take back work in Git, and the one question that picks between them: has the commit already been shared?

The everyday safety net of a software project: undo mistakes in Git, get out of the three common Git problems, write tests with pytest and run them on every pull request.
Outcomes
Three ways to take back work in Git, and the one question that picks between them: has the commit already been shared?
The three messages that stop most people: what 'detached HEAD', 'fetch first' and 'CONFLICT' mean, and the exact commands that get you out of each.
Test a small function, run the tests, read a failure, and cover many cases with one parametrized test. Install pytest, write six lines, run one command.
One YAML file turns your test suite into a check that runs on every push and pull request, on several Python versions, with dependency caching.
Covered
Learning plan
Each lesson is short enough for one sitting and ends by pointing to the next.
How-toVersion ControlDoneStarted
Three ways to take back work in Git, and the one question that picks between them: has the commit already been shared?
TroubleshootingVersion ControlDoneStarted
The three messages that stop most people: what 'detached HEAD', 'fetch first' and 'CONFLICT' mean, and the exact commands that get you out of each.
How-toUnit TestingDoneStarted
Test a small function, run the tests, read a failure, and cover many cases with one parametrized test. Install pytest, write six lines, run one command.
CI/CDDoneStarted
One YAML file turns your test suite into a check that runs on every push and pull request, on several Python versions, with dependency caching.
Questions