Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Welcome! The Journey Awaits

Image comparing version track with v1, final etc and git
Unlike vaguely named files, version control makes it easy go to a specific version of a file. Source: The Turing Way project illustration by Scriberia. DOI: The Turing Way Community & Scriberia (2024)

How to use this resource?

This does not contain any guides on how to use git. There are tonnes of fantastic resources made by people who know git like the back of their hand. So, this is to signpost you to these resources.

Instead of giving you a laundry list of all of the resources under the sun, I have selected one or two resources which I think is the best for learning or achieving something. However, best is very subjective. Therefore, I will also include the other resources I have found in a list below the featured ones.

Help!! I've been bitten by the coding bug! What do I do??

Firstly, stay calm. Don't panic. It happens to even the best of us. Each path to and from this point unfurls in countless, unknowable directions, with the grace of a cat knocking a potted plant off a tall shelf - chaotic yet inexplicably elegant.

I want to ...LinkDescription
Learn more skills to help with my researchCodeRefinery workshopsCode refinery "teaches all the essential tools which are usually skipped in academic education so everyone can make full use of software, computing, and data with focus on reusability, reproducibility, and openness."
Basics about unix and programming in Python or RSoftware Carpentry lessons"Software Carpentry is a lesson program within The Carpentries teaching basic lab skills for research computing"
Read a book that's both philosophical and introduces computer science conceptsGödel, Escher, BachThis is the first computer science book I ever read. It explains computer science concepts in a very approachable manner and has an underlying philosophical question about how cognition emerges
Read a book about creating good softwareThe Pragmatic ProgrammerThis book "examines the core of modern software development—understanding what is wanted and producing working, maintainable code that delights its users"

I don't believe your "good coding practice" conspiracy theory. Are you just making this up?

Yes, I am. 😉 Check out these resources,

I apologise in advance. But, things move around on the internet. Please open an issue and I'll do my best to fix it!

Come across a life-changing resource you would like to share?

Please open a pull request!

Starting with Git

xkcd comic about git
Source: xkcd 1597

Suggested Resources

I'm looking for a ...LinkDescription
Detailed guide to walk me through the set-up of git and GitHubSoftware Carpentry Guide to Version Control with GitThe summary and set up page provides information about how to install git and creating a GitHub Account. Episodes 2 and 3 within the guide are about how to set up git and create the repository. The subsequent episodes provide practical advice on how to use git
Cheat sheet of git commandsGitHub git cheat sheetCheat sheet of git commands with explanation about what each of the commands do. A pdf version is also available
Simple English explanation of these fixes I copy and paste when I mess upOh Shit, Git?!My go-to guide for when I inevitably mess up. It helped to demystify fixes which I (dangerously) blindly copied from StackOverflow
Simple English explanation of what version control is and why it is important for reproducible researchThe Turing Way book's chapter on Version ControlAn approximate 5-minute read which is perfect for sharing with others or PIs to bring them on board with using git
Book that can tell me everything I can know about gitPro git bookI do NOT recommend this for beginners. But, if you're the kind of person that needs to really understand something to use it. This is the perfect resource.
Guide that is linked to a course at Imperial College LondonImperial Grad School course - Introduction to git and GitHub
Way to find out about upcoming Software Carpentry workshopsSoftware Carpentry website about upcoming workshopsThis shows upcoming workshops around the world
Using Git and GitHub for project managementGit and GitHub for efficient project management and collaboration: a mini-tutorialBlog post on how git can be used for more than just version control

None of these work for me... Do you have any others?

Overviews

Detailed Guides

  • Pro Git book
    • The Git Basics chapter covers the most common git commands and operations
    • If you'd like to use branches, I highly recommend the chapter on Git Branching
    • The Git Tools chapter explores "a number of very powerful things that Git can do that you may not necessarily use on a day-to-day basis but that you may need at some point"
  • Git documentation
  • GitHub training manual
    • Less detailed than the book and documentation
    • Very useful information on getting started with git
    • Written for teaching developers how to use git making it very useful for getting to grips with git and is very practical

More Imperial Grad School Courses

These have been created by the Imperial College Research Computing Service

  1. Introduction to Git and GitHub for Software Development
  2. Further Git and GitHub for Effective Collaboration

Another useful course that's not related to git is Essential Software Engineering for Researchers

Creating a Repository Demo

create repository demo