CS533 Concepts of Operating Systems

Portland State University, Fall 2016

View the Project on GitHub mikelane/CS533-Operating-Systems

Git and Github Tutorial

Note: Using Git and GitHub is completely optional. Your grade will not suffer in any way if you decide not to use it. If you choose not to use Git and/or GitHub for the CS533 project feel free to get all the files by clicking on the download zip or tarball instructions on the left. You should be able to click on one of those links to download the files to your computer and then you can upload the files you need to the ada server in the normal way. If you need help with that, come to office hours or make an appointment and we'll tackle it one-on-one.

Git is a version control system. It allows you to save a complete history of any files and a complete history of all changes you've made to those files. Handy! We won't be using a ton of the features of Git, but there is one feature that you might find useful.

First things first, you need to have git installed on your machine. If you log into your ada account, you can type git --version and you should see something like git version 2.9.3 as a result. Great news! Git, the software package, is already installed on ada. If you're trying to install Git on your personal computer, visit GitHub's help pages

Once git is installed on your preferred machine, there is only one step required to get all the files in the repository (which is git-speak for the code in the project under consideration). If, for instance, you're logged into ada, simply go to your home dir cd and then type git clone https://github.com/mikelane/CS533-Operating-Systems.git. This will put all the files into a new directory called CS533-Operating-Systems. Type git clone --help for other options and more information.

The next thing you'll want to do is to create a branch where you can do your work. How your branches are set up is up to you. Maybe you want to have a single branch where you will put all of your work for all of your assignments. Maybe you'll want a branch for each assignment. In either case, first make sure you are on the master branch and that you have the latest version of the code. Go to the CS533-Operating-Systems folder (or whatever you've named that) and type git checkout master and then git pull. This will put you on the master branch and will pull in any changes that I've made to the master branch since you last checked. Then to create a new branch type git checkout -b my-work. Feel free to change "my-work" to any name you'd like. NOTE: Please do not create a new remote branch or make any pull requests since this will make all of your work visible to everyone.

In order to make things a bit easier, I'll have you submit your work via email as per the directions on the assignment pages. So you won't have to concern yourself with other features of git for CS533. I'm happy to help with some git-related questions if I have some extra time, though.