Git and GitHub - YKul/Tutorials GitHub Wiki

Motivation

Git is a "version control system", which is a tool for tracking and managing changes to files in a project.

[Video] How Git Works: Explained in 4 Minutes

GitHub is a web-based service which offers hosting for storing and sharing Git projects.

[Video] What is GitHub

Together, these tools allow you to document changes to a project over time, back-up your work, and allow recovery of previous versions. Their true strength is for collaboration by allowing groups to communicate and share or copy projects, merge contributions from multiple people into the same project, and document changes over time.

While these tools are optimized for software developers, the platform is versatile and allows storage of many types of files.

In research, you may want to host configuration files for programs and automation scripts for data analysis to ensure methodological transparency and reproducibility of results. The project can be branched or cloned so others can build on the existing work by testing alternative methods and configurations, or tailoring it to their own datasets without impacting the original project.

As a student, you may find it useful for keeping web-hosted back-ups of your assignment work and class notes. This way you can have copies of your work accessible on any device and synchronized between devices. There may be collaborative opportunities on group projects, or sharing class notes. Unfortunately, most undergraduates are never introduced to GitHub, so you will need to take the initiative to teach others.

As with most computational tools, they will become second-nature with practice. By starting early, you are getting a head-start with a skill that nearly every company will recognize and most people eventually need to learn, but few curricula actually teach.

Lessons

  1. Getting started with GitHub
  2. Getting started with git