GitHub for Collaboration


By Kivan Polimis, Graduate student at University of Washington, who presented a series of hands-on tutorials at the IUSSP Training Workshops on Social Media and Demographic Methods (PAA, Washington, D.C., March 2016) and on Web, Social Media Data and Demographic Research (EPC, Mainz, August 2016). 

 

How many times have you worked with collaborators only to get confused if the latest version of your manuscript is ‘ProjectName_Final_version3.doc’ or ‘ProjectName_Final_version3a.doc’? GitHub can help solve that. GitHub is a repository hosting platform that integrates command line version with collaboration features such as task management. What does all of that mean? A “repository” is an online file storage for project code (optionally public or private) that multiple users have access to modifying. While GitHub was designed with software development in mind, various file types such as word documents, .jpegs, .png, etc. can be stored in a repository. Version control is a system for storing the changes to a file and aids in resolving conflicts when multiple authors revise the same file. By storing changes in saved files, version control is different than Dropbox because of the ability to systematically revise files to a previous version. Files no longer need to be suffixed by type of revision or date modified, instead, the entire history of a files changes are stored within each file. Moreover, messages can be attached to file versions and allow contributors quick review of modified files.

 

What does GitHub mean for academic research?


Using GitHub, researchers can collaborate and share all aspects of a project (written drafts, code, output, etc.) within a version-controlled environment. Adding GitHub to your workflow increases research reproducibility and supports non-linear development such as pursuing supplementary projects based on data from the main analysis. With version control, previous versions of files are easily available and awkward file naming conventions can be discarded (e.g., ‘ProjectName_Final_version3.doc’). Hopefully these advantages of GitHub spur you to move your next collaborative or individual project online. 

 

If you want to learn more and get started, see: