Git: GitHub Workflow Activity

From Foss2Serve
Revision as of 17:39, 21 January 2017 by Clif.kussmaul (Talk | contribs)
Jump to: navigation, search
Title GitHub Workflow Activity
Overview Participants, in teams of 2-3, work through a series of scenarios to learn how to contribute to open-source projects using a common workflow.
Prerequisite Knowledge Participants must be able to:
  • Local git repository operations:
    • Stage changes
    • Commit changes
    • Check the status of the repository
  • Command-line operations:
    • Change working directory (cd)
  • Filesystem operations:
    • Create, rename, move, and delete directories and files
  • Plaintext editor operations:
    • Edit and save a file
Learning Objectives Participants will be able to:
  • Use a common workflow to contribute code to a project on GitHub
    • Prepare a fork and local repository to contribute changes to upstream project on GitHub
      • Fork a project on GitHub
      • Clone a local repository from a remote repository
      • Create a remote in local repository to a remote repository
    • Prepare a branch to work on a feature or bug
      • Create a local branch
      • Push a local branch to a remote
    • Issue a pull-request on GitHub
    • Update repository with changes from upstream
      • Fetch upstream changes into local repository
      • Rebase feature branch onto upstream development branch
      • Resolve conflicts
    • Push changes to remote
    • Force push changes to remote
    • Squash commits


To learn git prerequisite knowledge, students should first complete Git:_Git_Intro_Activity.




A shared repository on GitHub.


This activity was not designed for assessment. If one wanted to, one could possibly assess group answers to worksheet questions and the state of each group's shared repository. One could also assess teamwork by circulating while students are working on the activity.


Additional Information:

ACM Knowledge Area/Knowledge Unit Software Engineering (SE)
ACM Topic Software configuration management and version control.
Level of Difficulty Medium
Estimated Time to Completion 70 minutes. Some teams may not finish.
Materials/Environment Each student needs a computer with git installed and configured, and an account on GitHub. The classroom must provide Internet access for all students' computers.
Author(s) Darci Burdge and Stoney Jackson
License (c) 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 .

Suggestions for Open Source Community:


Feedback to the author(s) of the activity regarding usage or suggestions for enhancements can be included via the discussion tab.

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC license.png

Personal tools
Learning Resources
HFOSS Projects