← Back to trackModule: Git for Real Work (Week 2)

BEGINNER · Medium · 60m

Fix mistakes safely (reset, revert, reflog)

Foundations Bootcamp

Lesson notes

Goal

Recover from Git mistakes without losing work or breaking shared history.

The Rule

If the commit is already pushed and others might have it:

  • prefer git revert (safe)

If it is only local (not pushed):

  • git reset is fine

Reset vs Revert

git revert (creates a new commit that undoes changes)

git revert <commit-sha>

Use this for shared branches.

git reset (moves HEAD)

git reset --soft HEAD~1
git reset --mixed HEAD~1
git reset --hard HEAD~1

Meaning:

  • --soft: keep changes staged
  • --mixed: keep changes unstaged
  • --hard: drop changes (danger)

Reflog (your safety net)

If you lost a commit:

git reflog
git checkout <sha>

Practical Scenarios

Scenario A: committed on main locally

git checkout -b feature/fix

Now your commits live on the new branch.

Scenario B: pushed a bad commit

git revert <sha>
git push

Scenario C: want to change last commit message

git commit --amend

If already pushed, avoid amend unless you know what you are doing.

Exercises

  1. Make 2 commits.
  2. Reset back one commit using --mixed.
  3. Recover using reflog.
  4. Revert a commit and inspect history.

Next Step

Branching strategies: how teams organize branches for releases and hotfixes.

View full outline

Outline

Use the outline to jump to any topic.

Track tools

Search lessons, continue where you left off, and track completion.

Modules

3

Lessons

9

Estimated Time

515m

Completion

0%

0/9 lessons

Your progress: 0%

Complete a lesson to increase progress

Outline

Open a lesson for full notes. Mark completed to update your progress.

Goal: By the end of this lesson you will be able to move around any Linux server quickly, understand where you are, and find what you need without guessing. This is not about memorizing commands. It is about building a m…

Goal: Understand Linux permissions well enough to fix "permission denied" problems quickly and safely. The Mental Model Every file/folder has: an owner (user) a group permissions for user/group/others Read it as: first c…

Goal: Control services confidently and read logs like an operator. What systemd is (simple) systemd is the service manager on most modern Linux distros. It starts services, restarts them, manages dependencies, and record…

Goal: Use Git the way teams actually work: small commits, feature branches, pull requests, reviews, and safe merges. The Workflow (end to end) Steps: 1. Sync with main 2. Create a branch 3. Commit small changes 4. Push b…

Goal: Recover from Git mistakes without losing work or breaking shared history. The Rule If the commit is already pushed and others might have it: prefer git revert (safe) If it is only local (not pushed): git reset is f…

Goal: Understand common branching strategies and when to use each. Strategy 1: Trunk based (recommended for fast teams) Idea: main stays deployable; branches are short lived. Pattern: small branches frequent merges featu…

Goal: Understand the minimum networking needed to debug real production issues: DNS, ports, HTTP, and TLS. The 4 step model When a request fails, check: 1. DNS: can we resolve the name? 2. Network: can we reach the IP/po…

Goal: Turn messy logs into clear answers using grep/awk/sed and a few patterns you will reuse forever. grep (search) Tips: n : show line number R : recursive E : regex i : case insensitive awk (extract columns) Common us…

Goal: Write a safe, reusable script that checks a service, collects logs, and prints a clean summary. Script building blocks variables functions exit codes strict mode (optional) Example: service health script Make it ex…