Revision control systems are a way not only to travel back in time, but to see what has changed at various points in your timeline. They are also called versioning or version control systems, which is actually a more technically accurate name. Such a system allows you to maintain a repository of files in a project, and to keep track of changes to those files, as well as the reasons for those changes. Modern revision control systems allow more than one developer to work concurrently on the same project, or even the same file.
Revision control systems are essential to modern software development efforts, but they are also useful in many other areas, such as writing documentation, tracking system configurations (e.g., /etc/), and even writing books. We kept this edition of this book under revision control using Git while writing it; we used Subversion for the first edition.
Some of the useful features of revision control systems include:
Making it very difficult to lose your work, especially when the repository is properly backed up.
Facilitating change control practices, and encourage documenting why a change is being made.
Allowing people in multiple locations to work together on a project, and to keep up with others’ changes, without losing data by saving on top of each other or sending lots of unreadable emails.
Allowing one person to work from multiple locations over time without losing work or stepping on changes made at other locations. ...