Version Control (a.k.a. Revision Control or Source Control) is the practice of keeping record of changes to a file or set of files over time so that you can recall specific versions later.
Version control helps to identify which changes to a source code have caused a problem (a bug) in a software. VC systems allow comparing the current source code to an earlier, working version of the software, and allow restoring the source code to a previous state.
Centralized Version Control Systems (CVCS), such as CVS, Subversion, Perforce, use a central server to store and retrieve all changes (“central repository”). In Distributed Version Control Systems (DVCS), such as Git, Mercurial, Bazaar, each “local copy” is a full mirror of “the” repository. There is no single point of failure in a DVCS, and each repository can pull changes from or push changes to another one.
- List of version control software (Git and alternatives)
- List of code hosting platforms (GitHub and alternatives)
- Simple Git Guide (for getting started with Git)
- Getting Started with Git (DZone RefCard)
- Git Flight Rules (step-by-step instructions for Git)
- Getting Git Right (tutorials, articles, glossary) by Atlassian
- Git Book (free from official git docs)
- Git for Computer Scientists
- GitHub Flow (Scott Chacon, 2011) — simpler than git-flow: feature branching only
- Branch-per-Feature (Adam Dymitruk, 2012) — “Git Flow improved”