135 Version control
Learn how version control helps developers manage code changes, collaborate with others, and track progress across time.
Outline
This module introduces the fundamentals of version control in software development. Students will explore the difference between Git and GitHub, understand how these tools interact with an IDE and the command line, and practise using branches to manage features and resolve issues. Emphasis is placed on industry-relevant workflows and the importance of documentation and collaboration in software projects.
Targets
In this topic, students learn to:
Describe the purpose and function of version control systems
Distinguish between Git (local version control) and GitHub (remote repository hosting)
Demonstrate how to initialise, commit, push, and pull changes using both IDEs and the command line
Explain the concept of branching and merge conflicts
Use Git and GitHub in an integrated development workflow
Glossary
Git
A distributed version control system that tracks changes in files locally
GitHub
A cloud-based platform for hosting and collaborating on Git repositories
Repository (repo)
A directory that contains all your project files and version history managed by Git
Commit
A snapshot of changes made to files, saved with a message
Push
Upload local commits to a remote repository (e.g., GitHub)
Pull
Download changes from a remote repository to your local machine
Branch
A separate line of development within a repository
Merge conflict
A situation where two versions of the same file have conflicting changes
Overview
Version control is a core professional skill in software engineering. It allows multiple developers to work on the same project simultaneously, tracks the history of changes, and provides mechanisms to experiment with new features without risking the stability of the main codebase.
In this module, students will learn how Git works under the hood and how GitHub enhances collaboration through cloud-hosted repositories. They will also explore how to use these tools through an IDE or the command line, preparing them for project work and industry-standard development workflows.
Last updated
Was this helpful?