5. Version Control
• What is Version Control?
• A system that records changes to files over time.
• Keeping track of changes allows you to.
• Revert the file, files, or the entire project to a previous state.
• Compare changes over time.
• See who modified the source last
• Allows for easy collaboration between between multiple people
7. Types of Version Control Systems
• Local Version Control
• Simple as copying files to another directory
• Very prone to errors
• Works by keeping patch sets (diffs)
• RCS
9. Types of Version Control Systems
• Centralized Version Control
• Hosted on a remote server
• Clients check out files, modify them, then push them back to the
server
• Popular CVCS’s
• CVS
• SVN
11. Types of Version Control Systems
• Distributed Version Control Systems
• Designed to prevent the disasters possible with other VCS’s
• Clients don’t checkout single files, they clone the entire repository
13. The History of Git
• Originally created by Linus Torvalds in 2005
• Why was Git developed?
• Needed a home grown VCS to manage so many people making
many many changes.
• Bit Keeper was no longer free. Linus did not like this
• Goals of Git
• Speed
• Simplicity
• Strong support for non-linear development (Branches!!!)
• Fully distributed
17. The Three Stages/States
• Three main states your files can reside in
• Modified
• Staged
• Committed
• Three stages
• Working directory
• Staging area
• Git directory