Skip to content
Computer Science · 11th Grade

Active learning ideas

Version Control with Git

Version control is a procedural skill that improves with hands-on practice. Active learning lets students experience the immediate consequences of their Git commands, turning abstract concepts like staging and merging into concrete actions they can see and correct.

Common Core State StandardsCSTA: 3B-AP-18
20–40 minPairs → Whole Class4 activities

Activity 01

Simulation Game25 min · Small Groups

Simulation Game: Git History as a Timeline

Before touching computers, groups act out a version control scenario using index cards as 'commits.' Each student makes a change to a paper document, writes a commit message on a card, and passes it to the next. Groups then 'branch,' make diverging changes, and attempt to 'merge' by hand. Debrief connects the physical experience to Git commands.

Explain the importance of version control systems like Git in collaborative development.

Facilitation TipDuring the Git History as a Timeline activity, have students physically arrange sticky notes on a wall to represent commits, so they can see how branches diverge and merge over time.

What to look forPresent students with a scenario: 'You are working on a new feature, and your teammate has made changes to the same file. What Git command should you use first to get their latest changes?' Ask students to write their answer and a one-sentence explanation of why.

ApplyAnalyzeEvaluateCreateSocial AwarenessDecision-Making
Generate Complete Lesson

Activity 02

Project-Based Learning40 min · Pairs

Collaborative Lab: Intentional Merge Conflict

Pairs work on the same repository and intentionally edit the same line in different branches. They then attempt to merge and resolve the resulting conflict together. Each pair documents what caused the conflict, how they resolved it, and what they would do differently to avoid it next time.

Differentiate between common Git commands (commit, push, pull, branch, merge).

Facilitation TipIn the Intentional Merge Conflict lab, deliberately assign conflicting changes to pairs so they must use pull and merge tools, reinforcing that conflicts are part of normal workflow.

What to look forOn a slip of paper, have students list three essential Git commands and briefly describe the purpose of each. For example: 'commit - saves changes', 'push - sends local commits to remote', 'pull - gets remote changes'.

ApplyAnalyzeEvaluateCreateSelf-ManagementRelationship SkillsDecision-Making
Generate Complete Lesson

Activity 03

Think-Pair-Share20 min · Pairs

Think-Pair-Share: Commit Message Quality

Show students five commit messages ranging from unhelpful ('fixed stuff') to professional and specific. Partners rank them and explain their reasoning. Share rankings as a class and co-create a rubric for good commit messages. Students then rewrite the poor examples using the rubric.

Analyze how Git helps manage conflicts and maintain code integrity in a team environment.

Facilitation TipFor the Commit Message Quality think-pair-share, provide examples with vague and clear messages, then ask pairs to revise them together before whole-class sharing.

What to look forIn pairs, students create a simple branching and merging exercise. One student creates a branch, makes a change, and commits. The other student pulls, makes a conflicting change, and commits. They then swap roles to resolve the conflict. Students provide feedback on their partner's ability to explain the steps and resolve the conflict.

UnderstandApplyAnalyzeSelf-AwarenessRelationship Skills
Generate Complete Lesson

Activity 04

Gallery Walk30 min · Small Groups

Gallery Walk: Git Workflow Diagrams

Post four workflow diagrams around the room showing different branching strategies (feature branches, main-only, gitflow). Student groups annotate each with pros, cons, and what team size or project type it suits best. Close with a discussion of which workflow their class project should use and why.

Explain the importance of version control systems like Git in collaborative development.

What to look forPresent students with a scenario: 'You are working on a new feature, and your teammate has made changes to the same file. What Git command should you use first to get their latest changes?' Ask students to write their answer and a one-sentence explanation of why.

UnderstandApplyAnalyzeCreateRelationship SkillsSocial Awareness
Generate Complete Lesson

A few notes on teaching this unit

Teach Git in small, frequent steps with frequent feedback loops. Avoid long lectures about theory; instead, pair explanations with live demonstrations followed by student attempts. Research shows that students retain procedural skills when they practice commands immediately after seeing them used. Emphasize consistency in commit messages and branch naming to build professional habits early.

Students will demonstrate the ability to stage, commit, branch, and resolve conflicts independently. They will explain why these steps matter in real projects and use clear commit messages to document their work.


Watch Out for These Misconceptions

  • During the Git History as a Timeline activity, watch for students assuming their edits are saved just because they see them in the editor.

    Pause the activity and ask students to run `git status` after each edit to see that Git only tracks changes once they are staged and committed. Use this moment to reinforce the workflow: edit → stage → commit.

  • During the Intentional Merge Conflict lab, watch for students treating merge conflicts as errors that break their project.

    After the lab, have students describe how they resolved the conflict step-by-step. Ask them to explain why resolving conflicts is a routine part of development rather than a failure.

  • During the Commit Message Quality think-pair-share, watch for students writing commit messages like 'fixed stuff' or 'did work'.

    Display the lab’s commit history and ask pairs to rewrite vague messages to include what was changed and why. Provide a rubric with examples of good and bad messages.


Methods used in this brief