1. What is version control
1.1 What is version control?
Version control is a class of systems that record changes to a file or set of files over time so that you can recall specific versions later.
Changes are usually identified by a number or letter code. For example, an initial set of files is “version 1” or “revision 1”. When the first change is made, the resulting set is “version 2” or “revision 2”, and so on. Each revision is associated with a timestamp and the person making the change.
1.2 Why do we need version control?
There are multiple reasons why version control has become necessary: - Tracking changes. You can keep every version of an image, code or text. With each version, you can add message explaining why and what was changed. This way you can see how the file evolves over time. - Tracking Ownership. Version control keeps track of who made changes and you can see how much effort each person has put into a project to give credit accordingly. - Backup and restore. When some part of your work gets accidentally deleted, it is easy to recover it. You can also recover a file as it was a few weeks/months/years ago. - Synchronization. With big projects, multiple people are working on the same files. With version control programs it is easy to share files and keep your files updated to the latest version. - Short-term undo. Accidentally messed up a file? No worries, recover the last known good version. - Long-term undo. Introduced a bug a year ago? Jump back to that old version, see what change was made and why. - Sandboxing. Basicly an insurance. When implementing a big change you can test it in an isolated area and resolve bugs before applying them. - Branching and Merging. You branch (copy the project to yourself)