Collaboration with GitHub

EDS 214: Analytical Workflows and Scientific Reproducibility


Day 3 Afternoon | August 27th, 2025

This afternoon, you’ll learn how to…


Use GitHub for project management and collaboration

Specific skills include:

  • Use Issues to describe, discuss, and track code changes
  • Compare and contrast branching/merging with forking/pull requests
  • Share your outputs on GitHub Pages

Recap


This morning you learned about branches. How to:

  • Create
  • Commit
  • Merge

These operations promote collaboration while working in the local git repository.

GitHub also offers project management tools.

These tools integrate with features like branches and commits.

Code evolves


Writing an analysis is an exploratory process.

Discussions and to-do items are easily lost.

We need project management tools to link problems, discussions, and code changes!

A Simple Issue


A Simple Issue


A Simple Issue


A Simple Issue


A Simple Issue


A Complex Issue


Here’s a more complex issue

A Complex Issue


This title suggests a new feature

A Complex Issue


The initial description describes the use case

A Complex Issue


This commit includes a prototype for the feature, with a list of questions that came up in the process.

A Complex Issue


Latter commits include the finished code plus some tests to verify it works.

A Complex Issue


After verifying the code works, the author closed the issue.

Issues Recap


Issues are a project management tool GitHub provides to help you track:

  • Bugs
  • New features
  • Discussions
  • Solutions

The alternatives (comments, emails, Slack messages…) will eventually get you lost!

Branch/Merge vs Fork/Pull Request


Branching and merging are local operations that help you manage your own work.

Forking and pull requests are remote operations that help you manage work with others.

Fork/Pull Request


You’re familiar with local and remote repos.

Fork/Pull Request


A fork copies the remote repo. Pull requests send changes back to the original remote repo.

Fork/Pull Request


The connection between local and remote fork mirrors the local and remote original..

Fork/Pull Request


Fork/pull is conceptually identical to branch/merge.

The difference is that fork/pull is a remote operation, while branch/merge is a local operation.

Fork/Pull Request Recap


Fork/Pull Request is a project management tool GitHub provides to help you manage code changes from multiple contributors.

  • Bugs
  • New features
  • Discussions
  • Solutions

The alternatives (comments, emails, Slack messages…) will eventually get you lost!

GitHub Pages


GitHub Pages provides a free web presence for your projects.

Great for sharing your work with others.

Sharing URLs makes updates easy! Hunting for email attachments is hard!

You will use GitHub Pages for class assignments, Capstone, and your portfolio.

Meet Dr Eli Holmes


Meet Dr Eli Holmes. Research scientist at NOAA. Expert in fisheries and open science.

Forecasting Sardines


In 2020, Dr Holmes led a paper about forecasting sardine landings.

GitHub Repo


Here’s the project’s GitHub repo - should look familiar.

Note the URL under About. [username].github.io/[reponame]

GitHub Pages


Here’s the project’s GitHub Pages site.

Pages sites can host documentation, results, and more.

Function Documentation


Dr Holmes used their Pages site for documentation on their functions and data.

Back to GitHub


The function documentation links directly back to the source code on their GitHub repo.

GitHub Pages Recap


GitHub Pages give your projects a web presence.

On your project’s Pages site, you can host:

  • Documentation
  • Reports
  • Figures
  • Drafts

All your collaborators need is a URL!

But what if I break it?


Bowie is an environmental data scientist working on an analysis of pollution in local watersheds.

She manages her project in a GitHub repository, using Issues to track tasks and Pages to share her results with collaborators.

Her two collaborators are Iggy and Nomi.

  • Iggy found a bug in Bowie’s data pre-processing step and asked her to fix it.
  • Nomi is busy with other projects and hasn’t had a chance to look at the Pages site yet.

Bowie is worried that while she’s fixing the bug Iggy found she might temporarily break the Pages site, which would delay Nomi’s input on the project.

What should Bowie do to address Iggy’s bug while keeping the Pages site working for Nomi?