Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later
Allows you to revert files back to a previous state
Revert the entire project back to a previous state
Compare changes over time
See who last modified something that might be causing a problem
Local VCSs that had a simple database that kept all the changes to files under revision control
Single server that contains all the versioned files, and a number of clients that check out files from that central place
CVS
TFS
Subversion
Clients don’t just check out the latest snapshot of the files: they fully mirror the repository
Git
Mercurial
Bazaar
The most widely used modern version control system in the world
originally developed in 2005 by Linus Torvalds (creator of Linux)
Every developer has a working copy of the code
repository that can contain the full history of all changes
Performance, security and flexibility in mind
1. PROS
It could be difficult to learn for newcomers, especially coming from SVN
Many commands with many options
Some commands are non-intuitive and need a level of understanding the internals of git
2. CONS
Fetch from and integrate with another repository