This page provides answers to some commonly asked questions. Use the GitLab issues if you cannot find an answer here.

I just enrolled in the course, what should I do?

Welcome! Take a look around the website, especially at the course overview and grading information and other links in the side bar, which lead to information about individual lectures and labs and other course resources.

These are the essential points for getting started:

  • Most information in this course is disseminated through Git repositories in MFF GitLab. It is therefore imperative that you have a working account. You should be able to log in using your SIS user identifier and password — the account will be automatically created on your first login.

  • Visit the course project group and open your repository. The repository name corresponds to your SIS identifier. The repository will contain quizzes and project implementation specifications.

    If you cannot find your repository even though you have been enrolled in the course for longer than one day, please let us know.

  • Read the course overview and grading information.

  • Keep in mind that self study is a mandatory prerequisite to lecture participation and the lecture will not substitute for self study. Similarly, labs are meant for discussion about project implementation and we assume that you will have read the specifications.

  • Check for quizzes and milestones that you can still submit within the deadline, and start working on them as soon as possible.

If you have any other questions, please post an issue in the forum GitLab project. If you are unsure whether the question is not revealing too much (e.g. answer to a quiz question), make the issue Confidential so that only teachers can see it.

GitLab: where is it and how do I sign in?

Please, refer to this page for Q&A about our GitLab.

How to keep my fork up-to-date?

Most of the (later) milestones and the self-study material will be published in form of changes committed to the respective upstream repository. You are expected to merge these updates into your private repositories. When you view your private repository in GitLab, the corresponding upstream repository will be shown as the repository you Forked from.

For example, when we add a new quiz, we will commit the changes to the upstream repository.

To merge these changes into your private repository for the first time, you need to perform the following steps (for subsequent updates, you will only need to perform the last 3 steps):

  1. Clone your private repository and/or change to the directory with the clone.

    git clone git@gitlab.mff.cuni.cz:teaching/nswi200/2026/student-LOGIN.git
    
    cd student-LOGIN
    

    You need to be inside the clone directory for the subsequent steps.

  2. Add a remote pointing to the upstream repository.

    git remote add upstream git@gitlab.mff.cuni.cz:teaching/nswi200/2026/upstream/student.git
    

    This only needs to be done once per clone.

  3. Fetch changes from the upstream repository.

    git fetch upstream
    
  4. Merge the changes.

    git merge -m "Merge upstream changes" upstream/master
    

    Git will respond with an "Already up to date." message and do nothing if there is nothing to merge.

  5. Push the merged changes from your (local) clone back to your private repository on faculty GitLab.

    git push
    

A more detailed explanation is also available in the labs for Introduction to Linux course (NSWI177).

How to merge partial changes from upstream repository?

Sometimes we may publish minor updates to the assignment (e.g. when we find a bug in the tests). And thus sometimes you may need to merge only certain upstream changes.

To merge only certain commits (note that it is possible to select any commit via cherry-picking, the following focuses on the simpler case when we want to merge up to some commit) following commands will do the trick.

Assuming we are inside the directory with your team repository:

  1. Ensure we have upstream up-to-date.

    git remote add upstream git@gitlab.mff.cuni.cz:teaching/nswi200/2026/upstream/team.git
    git fetch upstream
    
  2. Merge changes up to a certain commit first.

    git checkout master
    git merge abcdef0123456789-commit-hash-goes-here -m "Merge upstream changes"
    
  3. Optionally, we may create a new branch where we would merge rest of upstream changes.

    git branch m03-import
    git checkout m03-import
    git merge upstream/master -m "Merge M03"
    

I forgot what I learned in other courses, what should I do?

Please, see the resources page that contains links to materials from other courses as well as links to software/hardware documentation and also some informal blog posts.