Skip to content
Aslak Bergersen edited this page Oct 21, 2017 · 8 revisions

This is a short intro to the different terms used in GitHub organizations. (For a general intro to GitHub and Git, see GitHub's own tutorials.)

Repositories

A repository is the place where your important files are stored. A version control system tracks changes in the repository such that you can monitor the history of files, roll back to previous versions, see who did what when, etc. Repositories are ideal for collaboration. Contrary to simple solutions like Dropbox and Google Drive, a repository with version control makes it easy for multiple people to edit files at the same time and automatically merge the changes (well, sometimes automatic merge is impossible, but the merge tools are amazingly smart).

Teams

A team has members and repositories. Depending on the member's status in the team (admin, push, pull), the member is granted the same access to all of the team repositories. In our virtual-classroom tool, each student is a team with name <university username>, which has admin access to a repository called <course>-<university username>. When group sessions for assessing projects/exercises are started, the groups get temporary access to the private repos they are supposed to evaluate.

Classroom

A GitHub organization is just a collection of teams and repositories. The administrators (typically the teachers) have full access to all repositories, even the private ones. Students can only see their own repos, and the repos that they are supposed to evaluate. These repos are explicitly opened up (in an automated way) by the teacher and remain open for a limited amount of time. The public repositories in the organization can only be seen by members of the group or the classroom.

Although we here emphasize that each student work on her/his own, it is trivial to form collaboration groups by letting one student's repo be a repo for the group.

Clone this wiki locally