Key Information

Tutors: Research Software Engineers from the Research Computing Service 
Course Level: Level 2
Course Credit: 1 credit
Prerequisites:  Basic knowledge of Git (tracking changes, publishing to GitHub, keeping your local and online repositories in sync). For example, 'Introduction to using Git and GitHub for software development' Graduate School’s course. Some knowledge of programming.
Course Duration: 2 x 2-hour sessions
Format:  Live online or live face to face

Course Resources

This course introduces advanced concepts and functionality of the version control system Git and the code repository GitHub, focusing on ensuring an effective and healthy collaborative process. When collaborating with others, measures and tooling need to be in place to manage the process in an effective way keeping track of the sequence of changes, reviewing, and approving proposed changes, and, if needed, undoing them.  

Both Git and GitHub provide powerful features that facilitate this process such as: branching, pull requests, forks, rewriting history with rebase, merge, reset, and releasing new versions of the software with tags to identify milestones in the development process.  

Moreover, some tasks ensuring that all contributions follow agreed standards can be automated via a continuous integration system. This course will introduce the basics of GitHub Actions, how to create workflows and run them automatically, when new changes are identified.  

Material will be delivered as a lecture with tasks, including a collaboration project on which the attendees will work together in teams. For face-to-face sessions, workstations will be available so bringing a laptop is not required however attendees are encouraged to do so if they wish to apply the materials from this course in an environment relevant to their work.  

Syllabus:

  • Intermediate Git concepts, commands, and terminology (eg. branches, rebase, merge and stash).  
  • Using GitHub’s Pull Requests to manage contributions from collaborators  
  • Using GitHub’s Forks to contribute to other people’s code  
  • Using continuous integration to make sure every collaborator's contribution meets an agreed standard 
  • Creating releases and adding tags to communicate effectively to users/collaborators what has changed between versions of the code.

Learning Outcomes:

 

After completing this workshop, you will be better able to: 

  • Use advance Git commands to manage the parallel development of multiple features
  • Collaborate effectively with others on a code base
  • Apply continuous integration to automate tasks  
  • Understand how to access support for research computing via the Research Computing Service at Imperial College

    Dates & Booking Information

    There are no further sessions taking place this academic year. Course dates for 2024-25 will be available to book from late September.

    To book your place, please follow the booking process advertised on the main programme page