Assignment 1: Repositories
Git Version Control
One great thing about working with text files is that their simplicity makes it easy to track changes between various versions of that file. Since the files contain only ASCII characters, it is easy to create programs that can look for character or word level changes to a document.
You can think of a version control system (VCS) as a kind of “database.” It lets you save a snapshot of your complete project at any time you want. When you later take a look at an older snapshot (let's start calling it “version”), your VCS shows you exactly how it differed from the previous one.
Why use a VCS?
- Tracking Changes - Version control allows a developer/writer to make changes to a file and track their changes over time. By “committing” changes to a file with a simple, associated message, the developer can create a list of how they have changed that file over time.
- Revert Back - Version control also allows for a developer/writer to make changes that may or may not work. If they find that the change they made was inappropriate, or did not work, they can simply revert back to a previous version. There is no need for directories full of “save as…” files.
- Share and Collaborate - Version control makes collaboration and sharing easier. Then all associated parties can see all changes made by each other, and manage any conflicts that may occur within a file.
“Yes, but why are we using a VCS?”
- Homework Trial and Error - Using the principles of GIT, you can track incremental changes to your work throughout your weekly assignments. This will allow you to see your own change history, test things, and revert back to previous versions should these tests not work.
- Free Hosting - Your git repositories (or repos) can easily be integrated with GitHub.com, which has some definite benefits, such as cloud backup and free hosted webspace. (This is how you will submit assignments during most of the course.)
- Be Professional Early - GIT and GitHub.com are standard industry tools in both commercial and research facilities. Your familiarity and comfort with GIT will make you a better future collaborator and prepare you for working in many development fields.