Preface

Git is a version control Swiss army knife. A reliable versatile multipurpose revision control tool whose extraordinary flexibility makes it tricky to learn, let alone master. I'm recording what I've figured out so far in these pages.

As Arthur C. Clarke observed, any sufficiently advanced technology is indistinguishable from magic. This is a great way to approach Git: newbies can ignore its inner workings and view Git as a gizmo that can amaze friends and infuriate enemies with its wondrous abilities.

Rather than go into details, we provide rough instructions for particular effects. After repeated use, gradually you will understand how each trick works, and how to tailor the recipes for your needs.

Thanks!

Kudos to Dustin Sallings, Alberto Bertogli, and Douglas Livingstone for suggestions and improvements. [If I've left you out, please tell me because I often forget to update this section.]

About Git

Comparisons

  • Git versus Subversion: articles by

  • Git versus Mercurial: articles by

  • Subversion vs itself: in response to its defence of Subversion's limitations, I claim Git is right for every project. I also claim where there is more than one programmer, there is decentralized development.

    Saying you should use systems that don't scale well when your project is tiny is like saying you should use Roman numerals for calculations involving small numbers.

Free Git hosting