Git & GitHub
Using a Version Control System (VCS) is one of the most powerful things that you can do as a developer of any level, whether you are a casual developer “for fun” or you have to develop for your job or you are a hard-core software engineer. Version Control Systems can save your bum more than you like, certainly, but they can also be incredible educational tools that help you see how software develops and changes over time. There is only one reason you should need to always use a VCS for everything you do, whether you are writing a paper for publication, writing a small scripts for seemingly “one-off” tasks, or you are a full-fledged software engineer: a VCS will let you backtrack your work when you realize you’ve made a mistake. That is, as long as your work is text-based content, VCSes provide you with an “undo” button for reverting those mistakes and getting back to a previous version. Git is one of those VCSes, and if you want to use GitHub, it’s the VCS you should use.
But why GitHub? The answer is open source software (OSS).
GitHub is a hosting platform for your Git repositories (i.e., the things that store your version-controlled work). GitHub is free, as long as your repositories are open and public. GitHub provides powerful search capabilities so that you can find other people’s work on GitHub, and they can find yours. And that encourages people to share their work and ideas, which means that people don’t constantly have to re-invent the wheel. It also encourages collaboration and communication with people working on the same things. In other words, GitHub enables open source software. Without something like GitHub, OSS would be severely limited.
GitHub goes further than this, though, it also makes working with your Git respositories easier and faster. It deals with complications in Git that you (might) find annoying, and makes them “push button.”
Together, Git and GitHub create a powerful platform that allows you take a tiny idea and turn it into a community effort.