When working on large programming projects, it’s important to be able to
collaborate with others, share code, keep track of what’s changed between
versions, and to annotate why things are changing.
These are the types of problems that Git solves. Git is a “distributed version
control system” (DVCS), but knowing what that means isn’t necessary to figure
out how to use it effectively. Basically, Git is a technology that allows for
rapid code sharing, lightweight “branching” (making it easy to work on different
features in the codebase), and much more.
A lot of people confuse Git with GitHub when they first start learning it. To
clarify, GitHub uses the Git technology at its core. GitHub is designed to be a
nice, graphical frontend that emphasizes “social coding.” It has features that
empower people to collaborate on open source projects, discover new projects,
and more. People use GitHub for the most part by interacting with Git on the
command line. Every once in a while, they can “synchronize” their most recent
work with the work available on GitHub. (this isn’t the best analogy for what’s
happening, but let’s roll with it).
Git has a command line interface; we’ll be showing you some basic features of
how to use it so you can hit the ground running.
Before Getting Started with Git
- Try Git
- An interactive Git tutorial, put together by Code School and available
- Targets first-time Git users, takes about 15 minutes. Make sure to read the
“Advice” for a deeper understanding.
- Git - The Simple Guide
- Straight-forward summary of the Git commands everyone needs to know to
use Git on a day-to-day basis
Once you’ve used Git for a while
- Learn Git Branching
- Interactive, very well designed tutorial that covers just about
everything there is to know about Git branching. Depicts what’s happening
visually on top of just demonstrating the commands.
- A Hacker’s Guide to Git
- My absolute favorite guide to Git. Everyone who uses Git should read
this at some point, as it really demystifies a large portion of how Git
When you’re comfortable using Git in the real world
- A Successful Git Branching Model
- High-level overview of how to use Git’s branches to manage features,
releases, hotfixes, bugfixes, etc.
- Pro Git
- The official Git documentation. Very comprehensive, very lengthy. I find it
more useful to look up specific things in this book rather than read it all
the way through, though it certainly could be approached that way.
Copyright © 2014, Great Practical Ideas in Computer Science.