On the first day of the NGCM Summer Academy 2016, after the introductory and intermediate courses on python programming, a workshop on use of git for version control was delivered by the NGCM students. This course was aimed at people with little or no experience of using version control.
Version control is a tool that allows you to backup your work in such a way that you can go back to any previous version of your work. It is most commonly used when developing code but is also a very useful tool for backing up and tracking your changes on reports and documents, particularly if they are written with LaTeX.
It allows you to avoid the problem of losing code/documents and simultaneously allows you to go back to previous versions without saving many different copies of the same document or code. It therefore solves the common problem encountered when writing code/documents which is demonstrated in this ubiquitous comic. Version control has a number of other applications as well, for example this Blog is curated using Git and Github.
Version control is perhaps one of the most key tools used in development of code. It allows you to make changes to your code without worrying that you're going to break it and allows you to easily document changes you have made and why they were made. It also allows you to easily see the differences between different versions of the code.
Git is one of the most heavily used version control frameworks and works seamlessly with the popular websites Github and Bitbucket which allow you to backup your git repositories online and for free. Github in particular is heavily used as a platform for developing open source collaborative code with multiple contributors. As part of the workshop attendees were asked to pair up and make different changes to a document and upload these changes to Github and then merge the two versions, which is a common occurrence when collaboratively developing code, this is one of the areas where git, particularly when used with Github, excels.