01Overview
In 1972 SCCS stored source versions as deltas; in 1982 RCS simplified single-file version control; in 1990 CVS supported many files and many people and became the default for open-source projects. In 2000 SVN improved on centralised repositories with atomic commits.
In 2005 the Linux community needed a new distributed system, and Torvalds wrote Git in about two weeks: every clone is a full repository, commits are identified by content hashes, and a branch is just a pointer. Git’s snapshot model and cheap branches changed workflows, and GitHub turned code hosting into a social network. Today a commit history is itself a form of engineering documentation.
02History
- 1972
SCCS
One of the first version-control systems.
- 1982
RCS
Version control for single files.
- 1990
CVS
Multi-person collaboration and open source.
- 2000
SVN
A central repository with atomic commits.
- 2005
Git
Distributed version control.
03Core concepts
Commit
An immutable snapshot identified by a content hash.
Branch
A lightweight pointer to a commit, almost free to create.
Merge
Bring the changes of two histories back together.
04Hands-on
Do it once — it beats reading it ten times
Rebuild the same three-branch history twice: once with merge commits, once rebased — then argue which is easier to audit
05Self-check
Say it in your own words first, then open the answer. Whatever you cannot explain is what to review next.
Can you explain "Commit"?
An immutable snapshot identified by a content hash.
Can you explain "Branch"?
A lightweight pointer to a commit, almost free to create.
Can you explain "Merge"?
Bring the changes of two histories back together.
What problem did it solve, and why was there nothing better at the time?
Go back to the history section: how was this done before, and what did it cost?
If you had to build it today, how would you break it down?
Use the hands-on task above: write a plan of at most three steps before you start.
06Key people
Mark Rochkind
1953 –
Author of RCS.
Linus Torvalds
1969 –
Creator of Git.
07Further reading
- Pro Git
- Pragmatic Version Control