Interactive Visualization with Git

From Foss2Serve
(Difference between revisions)
Jump to: navigation, search
(next in series comment)
(Suggestions to Open Source Mentors)
 
(31 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
{| border="1"
 
|-
 
|'''Title''' ||  Visual Git Game #1
 
|-   
 
|'''Overview''' ||  Students learn from an interactive visual git simulator / game. This activity focuses on LOCAL Git functionality (such as that on your laptop, NOT remote internet-based code repositories). See [[Git_Activity_4]] for the next in the series.
 
|-
 
|'''Prerequisite Knowledge''' || [[Git_Activity]] and [[Git_Activity_2]] or an introductory understanding of what SCM is about, and basic git commands.
 
|-
 
|'''Learning Objectives''' ||Students will be able to ...
 
  
* Create a branch.
+
{{Learning Activity Overview
* Checkout a branch.
+
|title=
* Create a tag.
+
Git: Interactive Visualization
* Checkout a tag.
+
|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.
 +
|prerequisites=
 +
[[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.
 +
|objectives=
 +
* Create and checkout a branch.
 +
* Create and checkout a tag.
 
* Merge a branch into another.
 
* Merge a branch into another.
 
* Rebase a branch onto another.
 
* Rebase a branch onto another.
Line 21: Line 18:
 
* Detach and move around HEAD.
 
* Detach and move around HEAD.
 
* Explain the difference between a branch, a tag, and 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.
 +
|process skills=
 +
}}
  
|}
+
=== 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:
 
** http://git-scm.com/doc
 
** http://git-scm.com/doc
** [[Git_Activity]]
+
** [[Intro to GitHub (Activity)]]
** [[Git_Activity_2]]
+
** [[Work Locally with Git from the Command Line (Activity)]]
  
What is the rational for this activity?
+
''What is the rational for this activity?''
 
* Getting familiar with git from the command line is not easy. This activity makes it a game!
 
* Getting familiar with git from the command line is not easy. This activity makes it a game!
  
 +
=== Directions ===
  
=== Directions: ===
 
 
* Go to tutorial at: http://pcottle.github.io/learnGitBranching/
 
* Go to tutorial at: http://pcottle.github.io/learnGitBranching/
* Complete all activities under the '''Main''' tab
+
* Complete all activities under the <u>'''Main'''</u> and <u>'''Remote'''</u> tabs
* Take screenshots of your solutions, AS YOU GO through each section
+
** 15 sections in all, so 15 screenshots
+
* Init, commit, and then create a remote repo (on github or elsewhere online) of your screenshots
+
** Recall: reuse of open source code is encouraged; submission of someone else's answers is academic plagiarism and will be enforced
+
  
 +
[[File:LocalGit.png|600px]]
  
=== Deliverables: ===
+
{{Learning Activity Info
* Send URL / link of remote internet-accessibly repository to instructor.
+
|acm unit=
* 15 Screenshots of the solutions of each section, with commits
+
SE - Software Engineering / SE Tools and Environments
 
+
|acm topic=
 
+
Software configuration management and version control
=== Assessment: ===
+
|difficulty=
 
+
Medium, as the advanced commands become more difficult to follow.
NA
+
|time=
 
+
2-4 hrs
 
+
|environment=
=== Comments: ===
+
* Access to Internet/Web and web browser
 
+
* Github account (or any online Git hosting)
 
+
|author=
 
+
Stoney Jackson, Nick Yeates
=== Additional Information: ===
+
|source=
{| border="1"
+
http://pcottle.github.io/learnGitBranching/
|-  
+
|license=
|'''Knowledge Area/Knowledge Unit''' || 
+
|-
+
|'''Topic''' || 
+
|-
+
|'''Level of Difficulty''' || 
+
|-
+
|'''Estimated Time to Completion''' ||
+
|-
+
|'''Materials/Environment''' ||
+
|-
+
|'''Author''' || 
+
|-
+
|'''Source''' || http://pcottle.github.io/learnGitBranching/
+
|-
+
|'''License''' ||
+
 
The MIT License (MIT)
 
The MIT License (MIT)
 
Copyright (c) 2012 Peter Cottle
 
Copyright (c) 2012 Peter Cottle
|}
+
}}
 
+
  
=== Suggestions for the Open Source Project: ===
+
=== Suggestions to Open Source Mentors ===
  
--------------------
+
Suggestions for an open source community member who is working in conjunction with the instructor.
This work is licensed under a
+
* 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.
[http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International License]
+
** What troubleshooting steps do they use in their head?
 +
** Do they chat or talk to fellow project-members or work colleagues?
  
[[File:CC_license.png]]
 
  
[[Category: Learning_Activity]]
+
[[Category:Learning_Activity]]
 
[[Category:Communication_and_Tools]]
 
[[Category:Communication_and_Tools]]
 +
[[Category:Git]]
 +
[[Category:CS2]]
 +
[[Category:Good Draft]]

Latest revision as of 17:21, 8 March 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.

Prerequisites

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


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

ACM BoK
Area & Unit(s)

SE - Software Engineering / SE Tools and Environments

ACM BoK
Topic(s)

Software configuration management and version control

Difficulty

Medium, as the advanced commands become more difficult to follow.

Estimated Time
to Complete

2-4 hrs

Environment /
Materials
  • Access to Internet/Web and web browser
  • Github account (or any online Git hosting)
Author(s)

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