This is a collection of resources for both new and old Git users. This will get you jump-started in the world of DVCS, serve as a reference point for common SCM tasks, and make you more productive and organized than ever.
Glossary
A list of confusing and lesser-known terms.
FAQ
Doesn't include beginner questions, but rather those questions which I am constantly running into but for which I always need to Google for the answer.
My .gitconfig file
Drop this in your home folder, and be sure to edit the name and email address! This will give you some really nice aliases, plus a few other sensible defaults. Try 'em out!
My .gitignore file
Drop this in your home folder and edit to your liking. It ignores compiled files for the languages I usually work in, plus configuration files for the IDEs I usually use. You should change it to ignore those files for the IDEs/languages/toolchains that you typically use. My recommendation is to avoid committing IDE files altogether, but that doesn't work for every project team, so use your discretion. (Update: Nowadays, some IDE makers like JetBrains and VS Code are smart enough to split the settings intended to be shared by a team into a separate file, so it can be committed while still allowing other settings to accord to the user's preferences.)
More Resources:
- Understanding Git Conceptually
- A great Git tutorial. Very concise, yet covers a lot of ground.
- A git Tutorial and Primer
- Here's another quick read with some nice diagrams to get the major concepts down.
- Git for Computer Scientists
- Great conceptualization that really demystifies the DVCS model. Again with an emphasis on diagrams—because Git is better understood with pictures.
- Atlassian Git Tutorials
- For a more in-depth reference, this is my go-to. This explains the entire workflow the way professional software engineers use it, and how it fits with their project management.
- A Successful Git Branching Model
- A generic impression of what the branching structure might look like for a real-world web application. This is a useful model to keep in your head, even if you don't adhere to it.
- Learn Git Branching
- Software for hands-on learning that actually simulates Git! A bit buggy but crazy slick, and so useful for understanding branches, remotes, merges, and rebases!
- Nick Farina - Git Is Simpler Than You Think
- Nice compact explanation of git internals, though I'm not sure it's too useful and I'm not convinced the author really understands Git.
- A few git tips you didn't know about
- git log is *so* 2005 | FredKSchott
- You can also find this über-useful command in my .gitconfig.
- LKML: Linus Torvalds: Kernel SCM saga..
- The birth of Git: Linus goes on "vacation" for a week.