Version Control
We will be asking you to work in pairs this semester. An essential skill for any sort of coding collaboration is the ability to work with version control systems.
In 552, we will use git a modern open source distributed version control system, and store our repositories on github. Below are instructions to set everything up. Once you have done so, we will double check that you have it correctly configured.
How to set everything up
Install git on your machine.
Create an account on github if you do not already have one.
Note your github username. For example, mine is sweirich.
Starting with homework 2, we will be creating private teams and repositories in the "cis552" organization for you to use for your homework assignments.
Optional: Set up ssh so you don't have to type your password each time you use git.
Optional: If you would like to create your own repository you may do so. If you plan to use this repository for course material, make sure that it is Private and that you initialize the repository with a README. Once the repo has been created, clone it to your local disk.
To get started using your repository, see the Git Basics part of the git manual.
Why not just use Dropbox?
In terms of collaboration, version control systems are based on a repository of information about your project that is accessible by all committers. Every project participant has access to the current copy of the project that is stored in the repository---much in the same way that dropbox replicates your files across multiple machines.
However, version control has two differences from dropbox. First, it allows local edits that are not immediately reflected on the server. This is important because you may want to try something out before making it available to your other team members.
Second, these systems provide versioning. They store all checkpointed versions of your code in the repository. That means you don't have to worry about making separate backups of versions that work before making changes---just commit. You will be able to roll back your local copy to any prior checkpoint.