Skip to Content
Module Outline

Version Control

Module Summary

This module introduces the foundational concepts of version control using Git and GitHub. You will learn how to track changes in your codebase, collaborate with others using remote repositories, and manage branches for feature development. The course will also incorporate basic command line navigation, providing you with the skills to interact with your repositories efficiently.

By the end of this module, you will be able to apply version control in real-world development projects, collaborate with team members, and resolve conflicts using Git and GitHub workflows.

Learning Objectives

  • Describe the fundamentals of version control and explain its importance in software development projects.
  • Apply basic Git commands to manage project versions.
  • Collaborate on projects using GitHub for remote repositories.
  • Use industry-standard Git processes such as branches and merging.
  • Handle pull request reviews and resolve merge conflicts.
  • Navigate and perform essential tasks in the command line interface (CLI).

Learning Outcomes

Upon completing this module, you will be able to:

  1. Explain the basic concepts of version control and the role of Git in modern development workflows.
  2. Use Git to initialize repositories, track changes, and manage your project history.
  3. Collaborate with others by pushing and pulling changes to and from GitHub repositories.
  4. Create and manage branches, merge feature branches into the main project, and resolve conflicts effectively.
  5. Review and handle pull requests in GitHub, ensuring code quality and managing collaborative contributions.
  6. Navigate and use the command line to interact with Git and perform file management operations.

Module Outline

Lesson 1: Introduction to Version Control and Command Line Basics

  • Time: 1 hour
  • Topics:
    • Introduction to version control and Git
    • Basic command line navigation (ls, cd, mkdir, rm)
  • Activities: Terminus game for CLI basics, interactive Git demo

Lesson 2: Basic Git Commands and Repositories

  • Time: 1.5 hours
  • Topics:
    • Git commands for tracking changes (git add, git commit, git log)
    • Reverting changes with git reset, git checkout
  • Activities: Hands-on lab: initialize and commit to a repository

Lesson 3: GitHub and Remote Repositories

  • Time: 1.5 hours
  • Topics:
    • Pushing and pulling changes (git push, git pull)
    • Cloning repositories and GitHub collaboration
  • Activities: Demo and lab: Set up and push to a GitHub repository

Lesson 4: Branching and Merging in Git

  • Time: 1 hour
  • Topics:
    • Creating and merging branches (git branch, git merge)
    • Resolving basic merge conflicts
  • Activities: Branch and merge practice

Lab: Branching, Merging, and Handling Conflicts

  • Time: 1.5 hours (asynchronous)
  • Branching and Merging Scenario: Work through a scenario simulating real-life workplace practices using branching and merging.

Lesson 5: Collaborating and Pull Requests

  • Time: 2 hours
  • Activities: Simulate collaboration via pull requests, branches, and conflict resolution using GitHub

Lesson 6: Best Practices for Code Reviews and Automating Workflows

  • Time: 1 hour
  • Topics:
    • Node.js and npm primer
    • Handling pull request reviews and resolving conflicts
    • Best practices for managing collaborative code
    • Introduction to GitHub Actions
  • Activities: Resolve pull requests and conflicts on GitHub

Final Assessments

Skills-Based Assessment (SBA)

  • Time: 2 hours
  • Format: Real-world Git project simulation
  • Git Workflow Simulation
    • Activity: Complete a project simulation where you:
      • Set up a GitHub repository
      • Create and manage branches
      • Merge branches and resolve conflicts
      • Submit pull requests and review peers’ work
    • Deliverable: Submit repository link and project reflection

Knowledge-Based Assessment (KBA)

  • Time: 1.5 hours (asynchronous)
  • Format: 20-30 multiple-choice or short-answer questions
  • Coverage: Basic Git commands, branching, GitHub collaboration, conflict resolution
  • Question Count: 20-30 questions
  • Focus: Git commands, collaboration, conflict resolution