I'm a programmer who wants to start using Git properly. What concepts and commands should I learn first, what would a sensible beginner workflow look like, and how will Git help me in day-to-day development?
4 Answers
It’s worth learning the model behind Git instead of memorizing commands. Git stores snapshots of your project and uses commits, branches, and references to organize them. The Git Parable explains that idea clearly, while the Pro Git book is a more complete reference. Understanding the model makes commands like merge, reset, and checkout much less mysterious.
Start with the core workflow: create or clone a repository, check the status, stage changes, commit them, pull updates, push your work, and learn how to merge branches. Once that feels comfortable, learn how to create a branch, switch between branches, stash unfinished changes, and inspect your history. Those commands cover most everyday use. I’d leave rebase and force-pushing until you understand the basics, since mistakes there can rewrite shared history.
Git gives you a history of your code, lets you experiment safely on separate branches, makes collaboration easier, and provides a way to recover from many mistakes. A graphical client such as GitHub Desktop can make the first steps less intimidating, but learning the command-line concepts underneath is still worthwhile.
Interactive practice helps a lot. The Git branching games from Learn Git Branching and Git-related exercises in The Odin Project let you experiment without worrying about breaking a real project. A troubleshooting guide such as Oh Shit, Git! is also useful once you run into common mistakes.

A beginner-friendly branch workflow is to create a feature branch from the current main branch, commit small changes, push it, and merge it after reviewing the work. That makes the purpose of branches much easier to understand.