Interactive Visualization with Git

(Difference between revisions)
Jump to: navigation, search
(Directions:)
Line 52: Line 52:
  
 
[[File:LocalGit.png|600px]]
 
[[File:LocalGit.png|600px]]
 
* 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
 
** REMINDER: reuse of open source code is encouraged; submission of someone else's answers is academic plagiarism and will be enforced
 
 
=== Deliverables: ===
 
* Send URL / link of remote internet-accessible repository to instructor.
 
* 15 Screenshots of the solutions of each section, with commits
 
 
 
=== Assessment: ===
 
{| border="1" class="wikitable"
 
! Criteria
 
! Partial Credit
 
! Complete Credit
 
 
|-
 
| '''Screenshots'''
 
| Bad file naming, difficult directory structure, or less than 15 screenshot files
 
| Easy to view files, no weird naming, all 15 screenshots
 
 
|-
 
| '''Solutions'''
 
| Not all solutions given, or some solutions are not optimal (hard to tell from screenshot though)
 
| All solutions given and most are optimal (sometimes optimality is not necessary for completion)
 
 
|}
 
 
 
=== Comments: ===
 
What are some likely difficulties that an instructor may encounter using this activity?
 
* Students might easily plagiarize or copy each others screenshots to the solutions.
 
* To fight this, a REMINDER has been added in the directions.
 
* Teachers might also mentioned it in-class and spot-check for it in grading.
 
  
  

Revision as of 22:52, 2 March 2016

Title Git: Interactive Visualization
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.
  • Checkout a branch.
  • Create a tag.
  • 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