Skip to Main Content
library logo banner

Research Software Learning Online: Git and GitHub

Accessing Git and GitHub

GitHub LogoGit is a version control system that you can use to keep track of amendments to datasets or documents. It is particularly useful if you are writing code or developing software as part of your research.  GitHub is a web-based service that allows you to use Git, share your code with collaborators, make your code open-source, and have others contribute to the development of your code.

The University hosts a private GitHub repository that can be accessed from: https://www.bath.ac.uk/services/github-enterprise-version-control-system/. You can access guidance documentation through the GitHub Guides.  Git is available to students on the University-managed PCs throughout campus and via UniApps and UniDesk.

The DoctoralSkills Research Software Skills course delivers workshops to doctoral students on version control with Git. However, the lesson materials are available online for you to refer to (under 'Lesson Materials'). 

 

Image: CC BY https://commons.wikimedia.org/wiki/File:Font_Awesome_5_brands_github.svg

Please note that O'Reilly deletes content in December and June. If you are linking to courses on this platform we advise that you check that they are still running in January and July of each year. 

Getting started courses

These courses are suitable for those new to Git and GitHub and are generally short introductory courses. The majority of courses listed under ‘Intermediate and Advanced courses’ are also suitable for beginners and are significantly more comprehensive. Therefore, have a look at all of the courses on offer and decide how much detail you want to learn. 


Learn Git in 3 Hours (3 hours)

This is an introductory video course that is suitable for those who are completely new to using Git. The course covers: 

  • What is version control and what is the TerminalLearn git in 3 hours
  • Installing and configuring Git
  • Git basics
  • Branches and workflows

Git and GitHub: The Complete Git and GitHub Course (3 hours)

This video course is for those new to Git and GitHub and who need some Terminal basics as well. The course covers: 

  • Git basics: installation and creating a repositoryThe complete git and GitHub course
  • Undoing things
  • GitHub basics
  • Working with branches
  • Merging branches
  • Merging on GitHub
  • Forking and contributing
  • Collaboration

Git and GitHub Crash Course (1.25 hours)

This course is designed to guide you through working with Git and GitHub. You will start by learning how to install Git and initialize a new Git repository on Windows, Mac, and Linux/Unix systems and then understand how to use it on the command line.

Next, you will learn the four types of objects in Git: blobs, trees, commits, and annotated tags. Each object Git and GitHub Crash Course book coverhas a unique SHA1 hash. All objects are stored in the folders. Every object has just a single reference to it-SHA1 hash. Files are stored in blobs. Filenames are stored in other Git objects called trees.

The videos will guide you through making changes, staging them, and committing them afterward. Also, you will learn and practice how to observe commits tree and checkout different commits to “travel in time” between different states of the Git repository.

By the end of this course, you will be well-versed with the basics of Git and GitHub.


Git Essentials LiveLessons (3.5 hours)

This is an introductory video course that introduces you to the key functions of Git and GitHub. The course covers: 

  • Introduction to GitGit essentials
  • Using Git: the basics
  • Collaborating with Git
  • Forking workflow of collaboration

Intermediate and advanced courses

Many of these courses are suitable for those new to Git and GitHub but go into more depth than the basic introductory courses. They are designed to develop intermediate and advanced skills. The video courses can be used as a reference to dip in and out of for those who do not need to learn the basics of Git and GitHub. 

Pair Programming with AI (1.5 hours)

Pair programming with AI can enhance your role by incorporating artificial intelligence tools into your software development process. Here's what you will learn in the course:
 

  • Strategies to leverage AI tools like ChatGPT and GitHub Copilot for increased productivity
  • Practical techniques for using AI to address common tasks in coding
  • Understanding the capabilities and limitations of different AI tools
  • Hands-on practice with GitHub Codespaces, a cloud developer environment
  • Exploring how AI can assist in code writing, refactoring, error detection, and test-driven development

Collaborating with Git (6 hours)

Author and educator Emma Jane Hogbin Westby takes an unconventional approach to teaching version control with Git. 

Along the way, you’ll learn several Git hacks to help you be more efficient. And that means navigating Git from the command line. Many people prefer the “convenience” of a GUI, but in the long run, learning commands is quicker and easier than clicking various buttons on a succession of screens.

  • Create a visual map of Git by sketching your own diagrams
  • Use an example project to get started with hosted Git repositories
  • Learn how to upload changes and merge work with branches
  • Work with tags to pinpoint specific commits in the history of your work
  • Find and fix bugs by comparing “working” and “non-working” states
  • Learn how to undo your work with rollbacks and resets
  • Clean up your commit history with rebase
  • Move your sample project from GitLab to GitHub
  • Learn how to collaborate on GitHub and BitBucket

Building Monorepos on GitHub (1.25 hours)

In this course, you will learn how to effectively build and host monorepos on GitHub. Here's an overview of what the course covers:

  • Managing code in monorepos and understanding the advantages of using them.
  • Creating and building monorepos, including setting up config files and installing shared components.
  • Tools to manage your monorepo, such as migrating projects and running custom commands.
  • Using GitHub Actions for monorepos, including creating workflows and deploying monorepos.
  • Best practices for designing and governing your monorepo effectively.

Complete Git Guide: Understand and Master Git and Github (22 hours)

This is an in-depth video course for those who are keen to fully understand Git and GitHub. It is suitable for those who are new to Git and GitHub but is possibly most useful as a course to dip in-and-out of as needed. The course covers: 

  • Introduction to Git and GitHubComplete Git Guide
  • Configuration of the Shell
  • Basic Shell commands
  • How Git works under the hood
  • Basic Git operations
  • Git branches and HEAD
  • Cloning, exploring and modifying public repositories
  • Merging branches
  • GitHub and remote repositories
  • Git push, fetch and pull
  • Pull requests
  • Working with collaborators
  • Forks and contribution to public repositories
  • Git tags
  • Rebasing
  • Ignoring files in Git
  • Detached HEAD
  • Advanced Git

8 Git Commands You Should Know (1 hour)

In this course, you will learn how to enhance your Git skills. Here's what the course covers:

  • Learn eight power-user Git commands to save time and prevent bugs.
  • Discover advanced techniques such as undoing commits and reverting changes.
  • Understand how to set up pre-commit hooks for more efficient coding.
  • Explore useful tricks like stashing changes and adding modifications to Git.
  • Test your skills with Git-command challenges throughout the course.