I’m a scientist, why should I use Github?
Fundamentally, Github helps implement version control. That is to say: it helps to save, organize, and share different versions of a research project.
Version History
In scientific fields, it is important to document and justify the steps you take in an analysis. Creating a version history facilitates this process by documenting the changes you make to a project and the reason for making them. Whether you are writing the methods section for a paper or returning to an old project years later, a version history ensures that you know exactly what is happening in your analysis.
Furthermore, a version history makes it easy to restore previous versions of a project. For example, if you make changes that break your code, you can easily return to a working version. Similarly, if you try out a new analysis and decide it’s not actually useful, you can quickly return to a version of the project without the analysis.
Back up files
Given the time and effort that goes into research, it’s terrible to lose your work. By saving and backing up versions of a project, you can ensure that your work is never lost, even if a computer is destroyed or files are accidentally deleted. (Quick note: Github limits file sizes to 100MB, so it’s mostly meant to back up code and small files. If you need to back up and version control large datasets, you should look into other platforms.)
Organize simultaneous versions of a file
Sometimes it can be useful to use multiple versions of a file simultaneously. For example, you may have a script that implements an analysis, but want to use different settings for different projects. Managing the different versions of this file is important, as you would not want to apply the wrong settings to an analysis. Github provides a framework to organize such files.
Share versions with collaborators
When working with collaborators, it’s not uncommon to share some code, make changes to the code, but forget to re-share the updated file. Alternatively, you may want to design code collaboratively, but lack a platform to do so. By backing up files to cloud, Github ensures that collaborators always have access to the most up-to-date version of code.