Tracking changes.
WHY EVEN FOR SMALL PROJECTS
You can return to a working state You can see what changed and when You can work without fear of breaking things
WHAT TO COMMIT
Source code Configuration examples Documentation Dependency files
WHAT NOT TO COMMIT
Virtual environments Secrets and credentials Generated files Large data files
WHAT TO USE
An ignore file, listing what to exclude.
Set it up before the first commit.
WHAT MAKES A GOOD COMMIT
One logical change A message stating what and why
WHAT MAKES A BAD ONE
Everything at once A message saying "fixes"
WHY IT MATTERS
The history is how you understand a change months later.
WHAT TO DO BEFORE A RISKY CHANGE
Commit the working state.
WHAT BRANCHES ARE FOR
Working on something without disturbing what works.
WHERE TO STORE IT
A hosted repository, so it survives your machine failing.
WHAT TO CHECK
That no secret has ever been committed.