Git: GitHub Workflow Activity

From TeachingOpenSource


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.

Prerequisites

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
After successfully completing this activity, the learner should 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
Process Skills
Practiced


Background

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

Directions

See: https://github.com/StoneyJackson/github-workflow-activity

Deliverables

A shared repository on GitHub.

Assessment

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.

Comments

Additional Information

ACM BoK
Area & Unit(s)

Software Engineering (SE)

ACM BoK
Topic(s)

Software configuration management and version control.

Difficulty

medium

Estimated Time
to Complete

70 minutes. Some teams may not finish.

Environment /
Materials

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

Source

https://github.com/StoneyJackson/github-workflow-activity

License

(c) 2016 Darci Burdge and Stoney Jackson SOME RIGHTS RESERVED

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

CC BY SA.png


Suggestions for Open Source Community

Feedback

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