Version control

Dealing with information stored on a computer is handling changes. After adding, modifying or deleting text you may want to undo that action (and perhaps redo it later). Is what we have the undo button for. And we can keep multiple files. And get lost in which one had what changes. Sharing a document with others can also have great results. Who made that change, why did they make it, when did they make it, what exactly was changed, and what am I missing?

Git basics

With a version control system you would not just save, but commit a file after having made changes to it. Commit is a save-like operation commanding the version control system to store this particular version and specifying a message stating the reason for the change(s) or what it accomplishes. When another commit is made then the previous version would remain in history where its changes can be examined at a later time.

Version control systems work by maintaining a list of changes to files over time. Each time the new version of the file is stored in the repository and each commit corresponds to

  • a particular version of the file and references to the previously made commit
  • a commit message describing the changes made in this commit
  • the time it was made
  • who made it and
  • the contents of the files at this point.
  • CVS (Concurrent Versions System) is the “grandfather” of version control applications.
  • SVN (Subversion) is an open-source, cross-platform centralized version control meant to replace CVS.
  • Git is an open source distributed version control system developed by Linus Torvalds for Linux kernel development when he became frustrated at the slow and inefficient nature of version control systems based around centralized models.