Most VC system are based around the idea of a repository. This is a database that contains the current state of your project. You won't edit the repository directly; indeed, in many cases, the repository will be hosted on a machine to which you don't have shell access.
To work on your code, then, you have to ``check out'' a copy of the repository to some filesystem you can access, usually somewhere under your home directory. In this working copy, you edit, compile, test, and debug. When it's time to publish your changes to others, you ``commit'' those changes back to the repository. Similarly, if you're working with someone else, you can update your working copy to include any changes that they've committed.
The repository contains not only the current state of your project, but also all past states that your project has been in. VC systems refer to these states as ``revisions'' and generally identify them with numbers, but the details of the numbering scheme vary.