First time here? You are looking at the most recent posts. You may also want to check out older archives or the tag cloud. Please leave a comment, ask a question and consider subscribing to the latest posts via RSS. Thank you for visiting! (hide this)

Now that Subtext, the blogging engine I’m working (or at least I should) on together with Phil Haack, has been officially moved to GitHub (guess the reason why), I finally have a reason to really study git and github.

I already tried starting a few years ago, and even used it a bit lately to work on the ugialt.net conference site (here the conf-oo github repo), but never really studied in depth, and still didn’t fully get the key differences between a traditional source control and a distributed source control.

So I asked around and found some good pointers.

Think Like (a) Git

The most recommended pointer I got is the Think Like (a) Git website, a self-proclaimed “Guide for the perplexed”. It’s a pretty nice tutorial covering all the key concepts of Git.

It also comes with a slideshow and an all-in-one page if you want to print it or PDFize it.

ProGit book and site

The second most popular recommendation I got is the Pro Git book from Apress. The thing that differentiate it from other books is its widespread usage of visuals and samples.

The cool thing is that, while still being a paper book and having a Kindle version, both released on 2009, there is also a Creative Common licensed ebook (PDF, Mobi, ePub) and also available for online reading.

The “code” for the book and his images is available on github and is updated with fixes coming from readers.

Other Git books

But Pro Git is not the only book available. Other two interesting books are the Pragmatic Guide to Git, published by Pragmatic Programmers and Version Control with Git: Powerful Tools and Techniques for Collaborative Software Development, by O'Reilly.

Cheat sheets

Then come the cheat sheets: GitHub lists a few ones.

But I particularly like the one on DZone, which besides being a cheat sheet is also a compendium of the main key points, and one of the first, but still one of the best, git cheat sheet.

Contributing to Open Source Projects On GitHub For .NET Developers video series

UPDATE: suggested by Bobby Johnson in the comments, a series of 3 videos on how to use Git and GitHub for contributing to OSS projects:

The GitHub Flow

One thing is to know the commands and how to use them, another matter is using it with the right approach and workflow.

I found two nice blog posts that explain two different versioning/branching strategies:

  • The usual workflow based on master + develop and feature branches, release branches, hot-fix branches, this time referred to as Git-Flow
  • The workflow used by GitHub itself, which is kind of less formal in some ways (no tons of release-based branches) and more strict in other ways (never commit to master without a code review and a pull request).

One works great if you have a product with formal releases and have the time and resources to manage all that formal branches, the other works great in less formal environment, with continuous deployments, and no formal releases.

Some other useful links

Do you have any other resources to recommend?

This is what I found, and apparently what the most popular resources are. But I’d love if you could add your own findings by posting a comment.

posted on Wednesday, January 11, 2012 11:32 AM

Comments on this entry:

# re: Getting stated with Git and GitHub

Left by Bobby Johnson at 1/11/2012 6:58 PM

I did a screen cast series a while back called "Contributing to open source projects on github for .net developers."


iamnotmyself.com/...

# re: Getting stated with Git and GitHub

Left by Nick at 1/11/2012 8:54 PM

Peepcode have got a git and an advanced git tutorial.

Check them out

# re: Getting started with Git and GitHub

Left by Dan at 1/12/2012 3:11 PM

http://gitimmersion.com/ is a pretty nice tutorial site for git

# re: Getting started with Git and GitHub

Left by Ste8 at 1/12/2012 3:40 PM

I don't know how much git is different from mercurial and if this could be useful: http://hginit.com/

# re: Getting started with Git and GitHub

Left by James Curran at 1/12/2012 5:51 PM

So, let's say, for instance, that I hate the console window, and insist on using GUI based tools.

In the case, is Git / GitHub usable yet?

# re: Getting started with Git and GitHub

Left by Sam Livingston-Gray at 1/13/2012 6:07 AM

@James: it depends. If you're on a Mac, git-tower.com makes a decent GUI. Personally, I use a combination of GitX for visualizing and basic changes like building up commits, and the command line for everything else. I've written more about this at [1] and [2].

<wow, comment formatting here is weird.>

I hear GitHub have their own GUI, but I haven't tried it since the day they released it, when it was still really crash-prone. ;>

--

[1] think-like-a-git.net/...

[2] think-like-a-git.net/...

# re: Getting started with Git and GitHub

Left by Step Down Transformer at 3/30/2012 5:52 PM

Great source of information you have here. You gave some good examples; I appreciate that since I want to get started working with GIT as well, I just can't grasp the overall concept behind it.
GIT are supposed to be used only on open-source, community developed, applications, right?
I'm looking into ways of keep source control in a easy way, but I think GIT may not be the answer.

I'll keep this bookmarked to read the sources you mentioned in the post.

Thanks,
Alfred

Comments have been closed on this topic.