Using Git to Code, Collaborate and Share

This course introduces the version control system Git, an essential tool for tracking and managing software development. Working with Git provides the flexibility to freely make changes to your code and the security to know you can always get back to a working state. You will learn to track the changes you made to your code and when you made them.

Beyond working on your own code, understanding Git allows usage of online code repositories such as GitHub. Using an online repository to publish your code is a great way to disseminate your research and a necessary step to collaborate with others. This course will demonstrate how to publish code to Github and introduce the features that make it a productive collaborative environment.

This course will cover:

This course (particularly the first half) is closely based on this Code Refinery lesson.

Prerequisites

Any introductory (graduate school) level programming course

Video Recordings

If you are a member of Imperial College a recording of delivery of the course can be viewed at the below links:

Schedule

Setup Download files required for the lesson
00:00 1. Why use a Version Control System? What is version control software?
Why should I use it?
00:10 2. Committing and History How do I start a project using Git?
How do I record changes made in a project?
How do I view the history of a project?
How can I correct mistakes I make with Git?
01:00 3. Branching and Merging How can I or my team work on multiple features in parallel?
How can changes from parallel tracks of work be combined?
02:00 4. Sharing your code How can I share my code with others?
What should I take into account when sharing my code?
02:20 5. Remote repositories Is my local repository the same as the remote one?
How can I send my local changes to the remote one?
How can I get the changes others have made?
03:00 6. Collaborating How can I make a contribution to other people’s repositories?
How do I know what changes other people are making in my repo?
04:00 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.