Collaboration with Github and Git

About Us

  • Cassie Moy (@cassie_moy)
  • Libby Horacek (@horrorcheck)
  • Position Development (www.positiondev.com)

amc-workshop.github.io

The Plan

  • What is git?
  • What is Github?
  • Use Github to work together on an open-source website
    • suggest changes with issues
    • make changes with forks, branches, and pull requests
  • Next steps for learning more

 

About you

 

Goals for this workshop?

What is git?

What is git?

git : a tool for managing changes to files

What is git?

How do you save changes

to your work?

  • Can you undo changes?
  • Can you see what changes you've made over some time period?
  • Can you make lots of experimental changes without worrying about losing anything?

What is git?

"version control"

also known as 

DIY version control:

Make copies!

  • Save a new copy whenever you make a change
  • Label the copies with the date, maybe a description
  • Make folders for big changes

What is git?

Now how do you work with many people changing many things?

What is git?

git to the rescue!

  • Save a history of all the changes you've ever made
  • Look at files before and after changes
  • Group changes
  • Merge changes
  • Handle conflicting changes
  • distributed version control

What is git?

git is a powerful tool

...it's also very complex

What is git?

We're going to focus on using git through Github.com

What is Github?

Github is a service for projects that use git

What is Github?

it has a cute mascot ->

Github hosts

source code repositories

What is Github?

A repository ("repo" for short) is a collection of files used in a project

repo on your computer:

local repository

What is Github?

repo on Github:

remote repository

We're not going to get to this today

We'll focus on this instead

You can use many git tools through Github.

What is Github?

commits

logs

branches

Github also adds additional tools to make collaboration easier.

What is Github?

Issues

Forks

Pull

Requests

Downsides of Github

  • Does not have ALL the functionality of git

What is Github?

  • Github expects you to use the git command line tool to create new projects and merge changes.
  • git desktop applications have many more tools
  • Free as in $$$, but not open source

Our project:

A website about

this workshop!

amc-workshop.github.io

 

The repository

Github Pages

  • Creates a website from the files in a project
  • Doesn't cost anything!

Repository tour

Plain text files that get turned into web pages

Repository tour

Style sheets and layouts that make the pages pretty

Repository tour

Settings for the program that makes the web pages

  • Most software projects have a "README" file
  • If there is a file called "README" in a directory, Github will display it below the listed files

Repository tour

Repository tour

The most recent commit

a single commit

- deletions

+ additions

a single commit

Commit Log

Demonstration of using Github

Let's collaborate on this website!

Create or log in to

 your account on

github.com

Demo

Create an issue!

  • Is something on the website not very clear?
  • Could something have a better name?
  • Have an idea for making the site better?
  • Silly suggestions welcome!

Demo

Create an issue!

  • Click the "Issues" tab
  • Click "New issue"
  • Write a title and description.
  • Click "Submit new issue"

Demo

Let's add changes!

Demo

Fork the repository

Demo

  • Repository owners choose who can make changes to their repository
  • Most don't let you make direct changes
  • Instead, you can "fork" the repo
  • Creates a copy on your account that you can change however you want

Fork the repository

Demo

Fork the repository

Demo

Create your own page

Demo

  • Click the "_participants" folder
  • Click "Create new file"
  • Enter a name for the file that ends in ".md"

Create your own page

Demo

  • Write something about yourself, this workshop, AMC, or whatever you want!
  • Format the file like above (the dashes and "name: " are important!)
---
  name: Your Name here
---

# This is a huge heading

## A small heading

- A list
- of many
- items

[A link to a website](http://alliedmedia.org/)

Commit your new file

Demo

  • Enter a commit message -- a short description of the change you made (like "Add page for Your Name")
  • Enter a longer description (if you want)
  • Click "create new commit"!

Now what?

Demo

  • Now you have changes on a fork on your account
  • How do these changes get on the website?
  • The changes need to be pulled into the main repo and merged into the master branch.
  • Submit a "pull request"!

Submit a pull request

Demo

  • Click "New Pull Request".

Submit a pull request

Demo

  • Examine the changes you've made
  • If everything looks good, click "Create pull request"

Submit a pull request

Demo

  • Type a name for the pull request or use the one given.
  • Write an optional description.
  • Click "Create pull request".

After you submit

your pull request...

Demo

  • ask for more information
  • ask you to make changes
  • make their own changes
  • The maintainer may:

Merging pull requests

Demo

If a maintainer decides to merge the pull request:

 

Sometimes it can be merged by just clicking a button!

 

But if two people tried to change the same thing -- there will be a merge conflict and the maintainer will have to use the command line tool to fix it.

Wrapping up

Checkout the README for more learning resources!

Keep contributing

to the workshop repo!

Questions?

Feedback!

Thank you!

  • Georgia Reh for her Teaching Git article
  • Sumana Hareshiwara
  • Octavia Project for website example
  • Allied Media Conference
  • And everyone who participated today!

Collaboration with Github and Git

By emhoracek

Collaboration with Github and Git

  • 2,029