Skip to content

Version Control with Git (Basic)Activities & Teaching Strategies

Active learning helps students grasp Git commands by doing them in real time, which builds muscle memory and confidence with version control. Pair and group work mirror real-world software teams, making abstract concepts like commits and pushes tangible.

Grade 9Computer Science4 activities20 min45 min

Learning Objectives

  1. 1Explain the fundamental purpose of version control systems in software development, referencing at least two benefits.
  2. 2Differentiate between the local commit action and the remote push action in Git, describing the data flow for each.
  3. 3Construct a sequence of basic Git commands (init, add, commit, push, pull) to manage changes in a shared code repository.
  4. 4Identify potential merge conflicts that can arise during collaborative coding and describe a strategy for resolving one simple conflict.

Want a complete lesson plan with these objectives? Generate a Mission

Pair Practice: Shared Repo Setup

Pairs create a GitHub repo, clone it locally, then take turns editing a shared HTML file: one adds content and commits, the other pulls, modifies, and pushes. Discuss conflicts if they arise. End with viewing the commit history online.

Prepare & details

Explain the benefits of using version control systems like Git in software development.

Facilitation Tip: During Pair Practice, circulate to ensure both partners take turns initiating repos and pushing changes, reinforcing shared ownership of the workflow.

Setup: Groups at tables with problem materials

Materials: Problem packet, Role cards (facilitator, recorder, timekeeper, reporter), Problem-solving protocol sheet, Solution evaluation rubric

ApplyAnalyzeEvaluateCreateRelationship SkillsDecision-MakingSelf-Management
45 min·Small Groups

Small Group Workflow: Game Collaboration

Groups of four divide a simple JavaScript game project into features (e.g., player movement, scoring). Each member branches, codes their part, commits locally, then merges via pull requests. Review history as a group.

Prepare & details

Differentiate between committing, pushing, and pulling changes in Git.

Facilitation Tip: For Small Group Workflow, provide a clear timeline: 10 minutes to plan, 15 minutes to code, 10 minutes to resolve a merge conflict using git pull and git merge.

Setup: Groups at tables with problem materials

Materials: Problem packet, Role cards (facilitator, recorder, timekeeper, reporter), Problem-solving protocol sheet, Solution evaluation rubric

ApplyAnalyzeEvaluateCreateRelationship SkillsDecision-MakingSelf-Management
25 min·Whole Class

Whole Class Challenge: Version Detective

Class clones a pre-made repo with a bugged codebase. Instruct students to use git log and git checkout to explore past versions, identify the error introduction, and revert. Debrief on prevention strategies.

Prepare & details

Construct a workflow for collaborating on a coding project using basic Git commands.

Facilitation Tip: In the Whole Class Challenge, ask students to present their findings with git log --graph visible on the projector to highlight branch structure.

Setup: Groups at tables with problem materials

Materials: Problem packet, Role cards (facilitator, recorder, timekeeper, reporter), Problem-solving protocol sheet, Solution evaluation rubric

ApplyAnalyzeEvaluateCreateRelationship SkillsDecision-MakingSelf-Management
20 min·Individual

Individual Drill: Local Repo Mastery

Students initialize a personal repo, make five iterative changes to a Python script (e.g., add functions), committing each with descriptive messages. Practice git status and git diff to check progress before final push.

Prepare & details

Explain the benefits of using version control systems like Git in software development.

Facilitation Tip: For Individual Drill, give students a checklist of commands to practice in sequence: git init, git add, git commit, git status, and git log.

Setup: Groups at tables with problem materials

Materials: Problem packet, Role cards (facilitator, recorder, timekeeper, reporter), Problem-solving protocol sheet, Solution evaluation rubric

ApplyAnalyzeEvaluateCreateRelationship SkillsDecision-MakingSelf-Management

Teaching This Topic

Teach Git step-by-step with frequent checks for understanding, as rushing to advanced commands before mastering basics leads to confusion. Use analogies like 'commits are snapshots in time' and 'push is like mailing a letter to share your work.' Avoid covering remotes before local commits are solid; students need to see the difference between saving locally and sharing remotely.

What to Expect

Successful learning looks like students confidently initializing repos, committing changes, pushing to remotes, and pulling updates without prompts. They should explain why local changes aren’t shared until pushed and how branches allow safe experimentation.

These activities are a starting point. A full mission is the experience.

  • Complete facilitation script with teacher dialogue
  • Printable student materials, ready for class
  • Differentiation strategies for every learner
Generate a Mission

Watch Out for These Misconceptions

Common MisconceptionDuring Pair Practice, watch for students assuming commits automatically appear online for their partner.

What to Teach Instead

Pause the activity after the first commit and ask partners to check git log before pushing. Have them observe that the remote repo remains empty until git push is run, making the local-remote gap concrete.

Common MisconceptionDuring Small Group Workflow, watch for students treating Git as a single-user backup tool.

What to Teach Instead

After the group shares their files via remote, ask each student to point out whose changes were added by whom. Use git log --author to highlight individual contributions and emphasize collaboration.

Common MisconceptionDuring Whole Class Challenge, watch for students believing branches create separate, isolated projects.

What to Teach Instead

Before starting, have students sketch a simple git log --graph on paper. During the activity, ask them to trace how changes from a feature branch rejoin the main branch, visualizing the merge process in real time.

Assessment Ideas

Quick Check

After Individual Drill, present the scenario: 'You have made changes to index.html and want to save them locally before starting a new feature. What two Git commands would you use?' Ask students to write the commands and a one-sentence explanation for each.

Discussion Prompt

After Small Group Workflow, facilitate a class discussion using the prompt: 'Imagine you and a partner are working on the same file. You both make different changes and then try to push your work. What might happen, and how would Git help you resolve this situation?'

Exit Ticket

During Pair Practice, provide a card asking students to define 'commit' in their own words and explain why it is different from 'push.' They should also list one situation where they would use 'pull' based on their pair work.

Extensions & Scaffolding

  • Challenge early finishers to create a branch, make a change, and open a pull request in their shared repo, simulating a real open-source workflow.
  • Scaffolding for struggling students: Provide a cheat sheet with exact commands for each step and color-code git commands (green for local, blue for remote).
  • Deeper exploration: Introduce git reset --soft and git reset --hard to show how to undo changes at different stages, then have students experiment in a test repo.

Key Vocabulary

Repository (Repo)A storage location for all the files and past changes of a project. In Git, this can be local on your computer or remote on a server.
CommitA snapshot of your project's files at a specific point in time, saved locally in your repository's history. Each commit has a unique identifier and a message describing the changes.
PushThe action of sending your local commits to a remote repository, such as GitHub or GitLab. This shares your changes with others and backs them up.
PullThe action of downloading changes from a remote repository to your local repository. This updates your local project with the latest contributions from collaborators.
BranchAn independent line of development within a repository. Branches allow developers to work on new features or fixes without affecting the main codebase.

Ready to teach Version Control with Git (Basic)?

Generate a full mission with everything you need

Generate a Mission