Version Control Systems
This article is a conceptual explanation of version control systems – including exam questions, core components, and tags.
In a Nutshell
A version control system stores every change traceable, enables parallel work with branches, and ensures traceability, recoverability, and collaboration.
Compact Technical Description
- DVCS (Git): complete history available locally
- Centralized (Subversion): history primarily on the server
Core operations:
- Commit (atomic change)
- Branch (parallel development)
- Merge or Rebase (integration)
- Tag (mark release)
Team governance:
- Pull Requests + Reviews
- Branch protection + status checks (CI)
- signed commits
Traceability: Ticket references in commits/PRs + releases via tags/notes.
Exam-Relevant Key Points
- Explain Git vs. SVN
- Commit contains metadata + hash
- Merge vs Rebase (history)
- Conflict resolution (3-way merge + tests)
- PRs/Reviews for quality/compliance
- Releases: tags + semver
- Security: permissions, signatures, audit trails
Core Components
- Repository (local/remote)
- Working tree + staging area
- Commits
- Branches
- Merge
- Rebase
- Tags
- Access control
- Hooks/automation
- CI/CD integration
Practical Example (Workflow)
1) Create feature-branch
2) Commit (small, traceable)
3) Rebase onto main, resolve conflicts
4) Pull Request + Review + CI green
5) Merge
6) Release tag (e.g. v1.4.0) + Release Notes
Advantages and Disadvantages
Advantages
- Traceability and recovery
- Parallel development
- Quality through reviews + CI
Disadvantages
- Learning curve (conflicts/rebase)
- Governance effort (policies)
Typical Exam Questions (with Brief Answer)
- Merge vs Rebase? Merge preserves branched history, rebase rewrites branch linearly.
- What are tags for? Mark releases reproducibly.
- Why pull requests? Four-eyes principle + checks.
- How do you link code to requirements? Ticket ID in commits/PRs + release notes.