GitHub Collaboration - let's plan a party!

Here we will work through a github workflow of working collaboratively with others. We will be using only the GitHub Online tool to work together to plan a party... like it's 1999.

Beginner - Intermediate

Format

This is designed as an in-person, facilitated workshop with pairs of learners working together, or individually. It could also be done online.

Target Audience

People new to Git/GitHub looking for some practice with the workflow.

Materials

  • An Internet connection to access the GitHub site
  • Computers to work on, ideally with GitHub Desktop installed
  • An Internet connection to access the GitHub site

Introduction

GitHub is a web-based interface for version control, a way of keeping track of changes made to a collection of working documents. GitHub provides a structure and space for communicating about collaborative work on open projects. With bit of set-up, and a good workflow, you can make your project accessible and transparent, and create a respectful and productive working environment for your collaborators.

This exercise walks you through a collaborative workflow for using Git/Github through the GitHub web interface.

The Brief

You notice online someone is planning a party, but clearly lack any direction for how to make this party off the hook. Because you want this party to be da bomb you decide you're going to contribute some help based on the issues that this person has posted in their repo.

You know that since you don't know this person, you'll have to comment on the issue of interest to let them know what you're working on, fork their repo, make changes and commit them to your fork, and then make a pull request to show the party planner your contributions.

GitHub Online: Steps to Complete

  1. Find the repo & read the contributing.md

    You are browsing the interwebz and realize that this poor soul needs help planning a party. You feel compelled to contribute and decide the best thing to do is read through the contributing.md file to see how you could best contribute - this person seems like they need a lot of help.

  2. Comment on the issue you want to work on

    As contributor:It is always a good idea to start a conversation with the owner of the repo so they know who is doing what and why.

    As repo owner: make sure to be responsive when people are willing to help out. Be sure to express your appreciation and offer any guidance.

  3. Fork the Repo

    As contributor: fork the repo.

  4. Create a branch

    As contributor: It is always good practice to create a branch from the project so that you can leave the "master" branch in tact while you add new content or functionality.

  5. Make some changes & commits

    As contributor: find the file you want to work on, make some changes and commit them.

  6. Make a pull request

    As contributor: make a pull request to ask the project owner to review your contribution. You will have to comment on the pull request before submitting your pull request.

    As repo owner: review the pull request, comment on the pull request, and provide feedback. If it looks good, then merge the pull request!

  7. Congratulations! You just contributed to a project!! 😎 🎉 - you saved this party!!

Glossary

repository, or repo

a collection of documents related to your project, in which you create and save new code or content.

markdown

a lightweight way of annotating a document with instructions that tell a web browser how to format and display text.

version control

a way of tracking changes to a document or collection of documents. Version control is like a time machine, it can take you back to the moment your document was created, or any other point in time when you or a collaborator saved that document.

Git

the command-line software that tracks all changes to a collection of documents

GitHub

a service that hosts your repository online and helps you work with contributors. GitHub adds a web-based interface to version control.

fork

a copy of a repository that is saved in another user's GitHub account.

branch

a copy of a repo that is contained within the orignal repo. Branches are used to work on a project features without altering the original or "master" repo.

commit

a saved change to a document in a repository.

issue

a message on gitHub that outlines a task that needs to be completed.

pull request

a request to add a commit or collection of commits to a repository.

merge

the act of incorporating new changes (commits) into a repository.