// Git Academy

Learn Git before Git teaches you

Short, practical guides with a sense of humour. More lessons are on the way.

Beginner

Intermediate

3 min read

Never use --force again

Why --force-with-lease exists and why it should be your only way to force push.

5 min read

The reflog, your safety net

Almost nothing committed is ever really lost. Here is how to find it.

6 min read

Merge or rebase?

The eternal debate, settled with one simple rule.

3 min read

Stash like a pro

Put work aside in two seconds without making a fake commit.

5 min read

.gitignore, for real

Patterns, exceptions, global ignore file, and why your file is still tracked.

4 min read

Tags and releases

Mark versions, push them, and never move a published tag.

6 min read

Search the history like a detective

Who changed this, when, why — and what did this file look like last month?

7 min read

Interactive rebase without fear

Reorder, merge, rename or drop commits before sharing them.

4 min read

Cherry-pick: take just one commit

Bring a fix from another branch without merging the whole branch.

6 min read

Forks and pull requests

The workflow to contribute to a project, yours or someone else's.

4 min read

Line endings: LF, CRLF and .gitattributes

Why a file shows as fully changed when you didn't touch it.

6 min read

Resolve conflicts like a pro

Read the markers, choose, test, and avoid the same conflict twice.

6 min read

Reviewing a pull request well

Test it locally, comment usefully, approve or request changes — and receive a review without suffering.

5 min read

Merge, squash or rebase: merging a pull request

The three buttons of GitHub, what they do to history, and which one to choose.

Advanced

More lessons coming soon. Want a topic covered? Tell us on Discord.