I may be totally off on some/all of these points here, but I thought I’d share some tidbits I’ve learned during my deep-dive of Git research tonight:
Git is deceptively simple.
Coming from a background in Subversion, I expected to have to jump through a bunch of hoops to get a repository configured, then get a server configured, etc. It took me most of the night to realize that you really don’t need anything other than the git binaries and a place to put your repository (local or remote).
If you do want to use a remote server to coordinate your repository, try just creating a bare repository on a remote server you can access via SSH, and “git clone” from there. Check out this Stack Overflow post for a great example: http://stackoverflow.com/questions/4948190/git-repository-sync-between-computers-when-moving-around
If you’re coming from Subversion, start by abandoning the concept of a partial checkout.
This concept kept me from making progress with Git longer than any other misconception I had. If you get caught up in trying to recreate your Subversion workflow in Git, you’ll get frustrated. If you embrace the concept of lots of small repositories that represent the folders/projects that you’d selectively check out from a master repository, then you’ll get Git right away. (FWIW, I did read about git submodules, but for my own purposes, fully separate repositories work best.)
The best way to learn is to experiment!
The best advice I can give is to just get your feet wet. Once you have a local version of Git installed, just start creating repositories and experiment with clones, commits, pushes, and pulls. If you do plan to work with a team and/or a remote repository, I highly suggest signing up for a GitHub account – it’s free for public repositories and pretty cheap ($7/mo starting) for private repositories.
There’s tons of help out there…
Speaking of GitHub, they also have a great site to help you get started using both Git and GitHub: http://help.github.com/
Besides the guide on GitHub, here are some of the best guides I’ve found yet:
- Pro Git – Great free book on Git usage and configuration.
- GitSvnCrashCourse – Git concepts for Subversion users.
- Git on Wikibooks
- Git User’s Manual: Git Quick Reference – A tl;dr for the rest of the manual.