Interactive Visualization with Git

(Difference between revisions)
Jump to: navigation, search
m
m
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
{| border="1"
+
 
 +
{| class="wikitable"
 
|-  
 
|-  
 
|'''Title''' ||  Git: Interactive Visualization
 
|'''Title''' ||  Git: Interactive Visualization
Line 7: Line 8:
  
 
|-
 
|-
|'''Prerequisite Knowledge''' || [[Intro to GitHub (Activity)]] and [[Git: Working Locally from the Command Line]] or an introductory understanding of what SCM is about, and basic git commands.
+
|'''Prerequisite Knowledge''' || [[Intro to GitHub (Activity)]] and [[Work Locally with Git from the Command Line (Activity)]] or an introductory understanding of what SCM is about, and basic git commands.
 
|-
 
|-
 
|'''Learning Objectives''' ||Students will be able to ...
 
|'''Learning Objectives''' ||Students will be able to ...
  
* Create a branch.
+
* Create and checkout a branch.
* Checkout a branch.
+
* Create and checkout a tag.
* Create a tag.
+
* Checkout a tag.
+
 
* Merge a branch into another.
 
* Merge a branch into another.
 
* Rebase a branch onto another.
 
* Rebase a branch onto another.
Line 32: Line 31:
 
* Delete a remote branch.
 
* Delete a remote branch.
 
* Push changes into a remote repository after remote history has diverged.
 
* Push changes into a remote repository after remote history has diverged.
 
 
|}
 
|}
  
 
=== Background: ===
 
=== Background: ===
 +
 
Is there background reading material?
 
Is there background reading material?
 
* All material is provided in this assignment, though references below may be useful:
 
* All material is provided in this assignment, though references below may be useful:

Revision as of 14:45, 6 February 2017


Title Git: Interactive Visualization
Overview Students learn from an interactive visual git simulator / game. This activity cover both local (on your laptop) and remote (internet-based code repository) Git functionality.
Prerequisite Knowledge Intro to GitHub (Activity) and Work Locally with Git from the Command Line (Activity) or an introductory understanding of what SCM is about, and basic git commands.
Learning Objectives Students will be able to ...
  • Create and checkout a branch.
  • Create and checkout a tag.
  • Merge a branch into another.
  • Rebase a branch onto another.
  • Cherry-pick commits.
  • Use relative commit references to refer to commits.
  • Move branches to a different commit.
  • Detach and move around HEAD.
  • Explain the difference between a branch, a tag, and HEAD.
  • Clone a remote repository.
  • Fetch changes from a remote repository.
  • Merge changes from a remote repository.
  • Rebase changes from a remote repository.
  • Describe the difference between _rebase_ and _merge_.
  • Push changes into a remote repository.
  • Describe the relationship between `git fetch`, `git merge`, and `git pull`
  • Describe the relationship between `git fetch` and `git push`.
  • Delete a remote branch.
  • Push changes into a remote repository after remote history has diverged.

Background:

Is there background reading material?

What is the rational for this activity?

  • Getting familiar with git from the command line is not easy. This activity makes it a game!

Directions:

LocalGit.png


Additional Information:

Knowledge Area/Knowledge Unit SE - Software Engineering / SE Tools and Environments from ACM_Body_of_Knowledge
Topic Software configuration management and version control
Level of Difficulty Medium, as the advanced commands become more difficult to follow
Estimated Time to Completion 2-4 hrs
Materials/Environment
  • Access to Internet/Web and web browser
  • Github account (or any online Git hosting)
Author Stoney Jackson, Nick Yeates
Source http://pcottle.github.io/learnGitBranching/
License

The MIT License (MIT) Copyright (c) 2012 Peter Cottle


Suggestions to Open Source Mentors:

Suggestions for an open source community member who is working in conjunction with the instructor.

  • Mentors might show what websites and resources (Stackoverflow, IRC, etc) they often utilize when they are stuck or something unexpected happens upon committing or branching.
    • What troubleshooting steps do they use in their head?
    • Do they chat or talk to fellow project-members or work colleagues?



Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox