Form a of 2 or 3 person team. It's better to work with someone who is using the same operating system as you.
Each team member will sometimes be a maintainer and sometimes a contributor. Rotate roles as necessary to ensure everyone in your team gets a chance to experience each role.
In this activity your team will play out several scenarios following steps described in Workflow Reference.
- Complete each part in order.
- Complete each step in each part in order.
- Name it what you like.
- Set the default permissions so that all organization members can create projects and write to any project in the organization.
- Add all team members to the organization.
- Name it
ourfavorites - Give it a default README.md file.
- Select a team member to be Contributor-1
- Help Contributor-1 to follow Setup: (1-4) in the Workflow Reference to prepare his/her local and remote repositories.
- Help Contributor-1 to follow Starting your contribution: (5-13) to add a
new file
favorite-foods.txtthat contains a couple of Contributor-1's favorite foods. - Select someone to play Maintainer (not Contributor-1).
- Help the Maintainer to accept Contributor-1's pull-request on GitHub.
- Help Contributor-1 to follow Update your master (27-28) and Delete unneeded branches (29-31) to clean up.
Congratulations, your team has made its first contribution! Celebrate. 👏 👏
- Help Contributor-2 to follow Setup: (1-4) to prepare his/her local and remote repositories.
- Repeat the steps above to have contributor-2 contribute a new file
favorite-movies.txtwith a couple of his/her favorite movies. - Make sure that the maintainer has accepted contributor-2's pull-request and contributor-2 has updated their master and cleaned up.
Celebrate again. 👏 👏
If you have 3 team members, repeat this scenario adding a file favorite-animals.txt.
- Contributor-1's repositories are out of synch. Help Contributor-1 follow Keep your repositories up-to-date (18-23) to update his/her repositories.
Celebrate. But keep it small. 👏 Don't worry, there will be bigger celebrations later.
- Have Contributor-1 and Contributor-2 independently follow the contribution
workflow to add another favorite food to the end of
favorite-foods.txt. - Maintainer, accept one of the pull-requests. Try to accept the other. You won't be able to because changes in the pull-request conflict with the other that you already accepted.
- Help the contributor with the unresolved pull-request to follow Keep your repositories up-to-date (18-23) to synchronize his/her repositories and resolve the conflicts.
- Maintainer, note that the conflicted pull-request is automatically updated and should be acceptable. Accept the pull-request.
- Have contributors clean up.
Celebrate enthusiastically. 👏 👏 👏 That was challenging.
- Have contributor-1 add another food, and contributor-2 another movie.
- Have the maintainer ask for a modification through the pull-request (e.g., "Please pick another flavor. I don't like chocolate.").
- Have contributors make, commit, and push the new changes.
- If the maintainer is satisfied, accept the pull-requests.
- Contributors, don't forget to clean up.
Notice how pull-requests provide a way for a contributor and a maintainer to communicate about a proposed change. Also notice how the pull-request updates automatically as new changes are pushed to the same branch.
- Repeat the multi-round contribution until both contributors have made multiple commits.
- Maintainer, through the pull-request, ask contributors to squash their work into a single commit.
- Help contributors to follow Squash your commits (24-25) to squash their commits into a single commit and push it.
- Maintainer, accept the pull-requests once it contains the same work, but only a single commit.
- Contributors, don't forget to clean up.
This is another moment for an enthusiastic celebration. 👏 👏 👏 👏 👏 Well done!
Copyright 2016 Darci Burdge and Stoney Jackson SOME RIGHTS RESERVED
This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ .