I’ve been exploring GitHub, as I’m working on a group project that will be using it. I’d like to say I understand it, but to be honest, I don’t really. Not yet.
Some basics. GitHub hosts repositories using Git. Git, according to those who should know (meaning its creators), “is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency,” and as far as I understand, a version control system is the management of any large group of files or whatnot.
So management of systems. According to https://help.github.com/articles/github-glossary/#git, GIT is “an open source program for tracking changes in text files. It was written by the author of the Linux operating system, and is the core technology that GitHub, the social and user interface, is built on top of.”
Tracking changes, managing systems. Cool.
Plus this is all open source, and according to the same, er, source of the above Git definition, open source software is “software that can be freely used, modified, and shared (in both modified and unmodified form) by anyone. Today the concept of “open source” is often extended beyond software, to represent a philosophy of collaboration in which working materials are made available online for anyone to fork, modify, discuss, and contribute to.”
Tracking changes, managing systems, collaboration, and the free use, modification, and sharing of materials. Now we’re getting somewhere.
Anyway, here’s a list of resources I’ll be making my way through in the near future, so expect some posts about repositories, forking, branches, and pull requests.
- Pro Git – book available online by Scott Chacon and Ben Straub
- A section from the above resource, “Git Basics,” which contains the great line that using Git is “a joy because we known we can experiment without the danger of severely screwing things up.”
- Git Immersion
- Git – The Simple Guide
- GitHub Training
- Git Reference
- And a short, learn-Git-in-15-minutes interactive tutorial that demonstrates more than teaches Git.