Git and GitHub Resources

git github 12 comments suggest edit

Learning Git and GitHub can be daunting if you’re new to it. I recently gave a small presentation where I pretty much firehosed a group of people about Git and GitHub for one hour. I felt bad that I could only really scratch the surface.

I thought it might be useful to collect some resources that have helped me understand Git and GitHub better. If you only read one thing, read Think like a git. That’ll provide a good understanding and maybe motivate you to read the others.


  • Pro Git If you have time to read a full book, read this one. It’s free!
  • The Git Parable This story walks through what it would be like to create a Git like system from the ground up. In the process, you learn a lot about how Git is designed.
  • Think like a git This is for someone who’s been using Git, but doesn’t feel they really understand it. If you’re afraid of the rebase, this is for you. It made Git click for me and inspired me to build SeeGit.
  • The thing about Git This is a bit of a philosophical piece with practical Git workflow suggestions.
  • GitHub Flow Like a Pro with these 13 Git Aliases This is about Git, but also GitHub workflows. It’s a useful collection of aliases I put together.

Git on Windows

  • Better Git with PowerShell Introduces Posh-Git. But don’t follow the instructions for installing Posh-Git here. Instead use…
  • Introducing GitHub for Windows GitHub for Windows is not only a nice UI client for Git geared towards GitHub, but it also is a great way to get the git command line and Posh-Git onto your machine.


This is by no means a comprehensive list, and perhaps not the best list, but it’s my list. Happy reading!

Found a typo or error? Suggest an edit! If accepted, your contribution is listed automatically here.



12 responses

  1. Avatar for Michael
    Michael December 4th, 2014

    Hello Phil!

    I'm using the GitHub-for-Windows provided Posh-Git from
    within the Visual Studio NuGet Package Manager. Unfortunately, I ran
    into an issue with the standard Git output being shown as an error in
    NuGet Package Manager. I've posted this on the NuGet issue tracker some weeks ago:

    Since I didn't yet hear from the NuGet team about this and you just today posted this nice Git-link summary, I figured, maybe you got some pointers for me?

    And just for fun sake: I'm working on setting up an entire GitFlow based on automation scripts that run directly from NuGet Package Manager and get installed via NuGet package. Combining these two makes for really great solutions :)

    Best regards, Michael

  2. Avatar for Rudi Larno
    Rudi Larno December 4th, 2014

    I must recommend this video: Git for ages 4 and Up - Michael Schwern
    I haven't found anything that brings the basics of Git home better than this. (It's visual! That is how I rock)

  3. Avatar for haacked
    haacked December 4th, 2014

    Oh yeah, I remember watching this video. Great suggestion! Think Like a Git is visual in the same way with the graphs, but this video has the benefit of actual motion. :)

  4. Avatar for haacked
    haacked December 4th, 2014

    Hmm, I wonder if it'd be easy to fix. You could look at the NuGet source. I also pinged a friend on the NuGet team about it.

  5. Avatar for Matija
    Matija December 4th, 2014

    Thanks for sharing this. One of my favorite video is from Paul Betts called Effective GitHubbing: The GitHub Flow, simple but effective, also explaining Git internals which many people don't understand.

  6. Avatar for Tyler
    Tyler December 5th, 2014

    Big big love for your opening sentence. ;-)

  7. Avatar for Michael
    Michael December 5th, 2014

    Hi Phil!
    Yeah, I did look at the stuff in VSConsole and even tried to debug the VS Extension but got the impression that you really need to know about working with this kind of VS-Addin, the Powershell execution and error handling model, and possibly some other stuff. And to be honest, that looked like a whole bunch of stuff you'd have to first become afluent in before you could figure out the right spot where the error-output is redirected. Plus, start-with-debugger didn't work for me, either because I missed something or my setup is somehow not compatible so I benched my own exploration until a time when I actually have more than an hour or two to investigate deeper.

    Many thanks for pinging this over!

    Best regards, Michael

  8. Avatar for haacked
    haacked December 5th, 2014

    Ah, well if you post the details of what you did try in the issue, you might get somebody to take interest from the NuGet team to help prod you in the right direction. :)

  9. Avatar for Mike
    Mike December 9th, 2014

    Great reference!

  10. Avatar for Michael
    Michael December 14th, 2014

    Hi Phil! Sorry this took so long but between work and me trying to try one more thing with Nuget first... (finally found the dev-docs on the Nuget site) Anyhow, just wanted to let you know that First, thanks again for the help, and second, I'll be closely following your advice over the holidays :)
    Best regards, Michael

  11. Avatar for Sanjeev
    Sanjeev January 1st, 2015

    Just watch this video from the author of the "Pro Git" book. That's all you need to get started.

    Introduction to Git with Scott Chacon of GitHub Video:

  12. Avatar for CADbloke
    CADbloke January 14th, 2015

    Also worth a look at: and StackOverflow is a ton of answers to a megaton of questions.