What is Git and why does every job posting require it?
I've been building projects and just saving folders with names like project-final-v3. Every job asks for Git. What problem does it solve that folders don't?
Git is version control: it records the full history of your project as a series of snapshots, so you can see what changed, when, why, and by whom — and go back to any earlier state. `project-final-v3` is a manual, lossy version of exactly that idea, which is why the joke lands.
The four problems it solves that folders can't:
1. History with context. Every commit has a message explaining the change and a diff showing exactly which lines moved. Six months later you can find when a bug appeared and what introduced it. Folders tell you nothing about why.
2. Fearless experimentation. You can try a risky refactor on a branch, and if it goes badly, throw it away and return to a known-good state instantly. Without that, people avoid improving code because breaking it is scary.
3. Collaboration without overwriting each other. Multiple people work on the same codebase simultaneously; Git merges their changes and flags genuine conflicts. This is essentially impossible with shared folders, and it's the reason every company requires it.
4. A record of your work. On GitHub, your commit history is a visible artefact of how you work — which is why recruiters look.
Why job postings all list it: it's not an optional tool at a company, it's the substrate everything else runs on. Code review, deployment pipelines, release management and rollbacks are all built on Git. A developer who can't use it can't participate in the team's workflow at all — it's closer to 'can you use a keyboard' than to a nice-to-have skill.
The good news on learning it: the daily working set is small. `git status` to see what's going on, `git add` to stage changes, `git commit -m "message"` to snapshot them, `git push` to upload, `git pull` to get others' changes, and branches once you're comfortable. That's the 90% case. The intimidating commands (rebase, cherry-pick, reflog) are for situations you won't hit for a long time.
Start now, on your next project, even solo: `git init`, commit after each meaningful chunk of work, push to GitHub. Two weeks of that and it stops being scary. And use a GUI if the terminal puts you off — the Git panel in VS Code or GitHub Desktop does everything above with buttons, and plenty of professionals use one.