1 of 20

Collaborating with GitHub

Introduction to Open Source Software Development, Dec. 19, 2017

2 of 20

Any questions, concerns from yesterday?

3 of 20

Issues

4 of 20

Creating Issues:

5 of 20

Try opening an issue on my WOW-Boston-Github Repo

6 of 20

Forks and Pull Requests

7 of 20

2. Fork + Pull Request

2. If you don’t own a repo and aren’t an official collaborator:

    • you will fork a repo - mmm yummy
    • work on your forked copy of the repo
    • in order to get your changes pulled into the original repo → make a pull request for the changes you’ve made
    • the author/owner of the original repo will determine if your changes are cool → and merge them in.
    • Make friends + Big party!

8 of 20

Fork the WOW-Boston-Github repo, make some changes (anything you can think of!) and open a pull request

9 of 20

On workflows

10 of 20

It’s good to have a clearly defined workflow

  • It keeps things from getting too messy
  • It makes some other things easier (like releases)
  • It makes it easier for other people to contribute

https://www.atlassian.com/git/tutorials/comparing-workflows

11 of 20

I like Git Flow and similar

  • https://guides.github.com/introduction/flow/
  • http://nvie.com/posts/a-successful-git-branching-model/
  • The “master” branch is a stable, public-facing version of your project
  • All your changes are first piloted on separate “feature branches”
  • Maybe you maintain a “development” branch where you first merge all of the feature branches when you finish them
  • When you’re ready to release a new version, merge “development” into “master” and tag a version

12 of 20

13 of 20

Adding collaborators

14 of 20

Add collaborators

As the owner of a repo you:

    • add people as collaborators
    • each collaborator can read/write files in the repo
    • each collaborator is adding files and other content → making branches → and either directly merging changes in or via pull requests

15 of 20

Settings - add collaborators here

16 of 20

Click here

17 of 20

Add collaborator’s name here

18 of 20

Why and When would I add collaborators?

  • You’re building a website and you have a team of trusted teammates.
  • You’re writing a paper and multiple people will be writing and editing.
  • You’re developing a new course and multiple people are developing content.
  • You are doing an analysis and need your collaborator to do a code review.
  • etc...

19 of 20

You add collaborators when they are a core part of your team!

20 of 20

What else would you like to know?