SFU GitHub
SFU's private GitHub deployment will be used for the group work in this course. There are two pieces of technology in play here: GitHub with manages the repositories and permissions, and Git itself as a version control system.
GitLab Setup
Logging In to GitLab
Sign in to the SFU GitHub server using your usual SFU username and password.
Set up an SSH key
You'll probably want to access the repository by SSH. If you don't already have an SSH key, you will need to generate one. Once you have an SSH key, add the key in GitHub.
Create a Project
One group member should create a project with visibility level “Private”.
You'll only be able to search for your group members after they have logged into the system at least once. (The system doesn't have a list of SFU users, so until someone logs in, it has no idea they exist.) So each group member will at least have to visit the site and log in first.
You can then add the other members of the group to the project: in the project, select “Settings”, “Collaborators”, and “Add people”. You can search by userid and add them with “Developer” or “Master” project access levels.
Make sure you add the instructor and TAs (ggbaker, sbergner, jga169, asa469) to the project as well.
Git Setup
There are a couple of commands you need to run to tell Git who you are, before starting work:
git config --global user.name "<YOUR NAME>"
git config --global user.email "<USERID>@sfu.ca"
Working on the Project
On the GitLab main project page, you will find the URL where you can clone the Git repository onto your computer. The command will be something like this:
git clone git@github.sfu.ca:group_or_userid/your-project.git
The project page itself gives more complete instructions for the first interactions with the repository: you get a very empty repository that requires some bootstrapping.
Working with Git
A Git manual is beyond the scope of this page, but here are the bare basics:
git pull # get changes from your group members
text_editor some/file.txt # do some work
git add some/file.txt # stage those changes for commit
text_editor other/file.txt # do some more work
git add other/file.txt # stage more changes for commit
git commit # commit the changes
git push # push to the remote server so others can see changes
Here are some Git tutorials for more information:
- The standard Git tutorial
- Interactive Git basics
- Pro Git book, which has a good intro (and more)