Submitting merge requests for review
This tutorial aims to show you how to follow basic git workflow and submit changes through Merge Requests for review.
The rudimentary idea behind aims for changes to be present on a separate branch that is supposedly merged into the default branch. Till then changes can be reviewed on Merge Request and additional changes may be made based on the reviews. Once the changes satisfy requirements, the merge request is merged.
Use this tutorial only for bonus assignments made by your tutors or in case you need to make up for the absence.
Step #1 - Starting from the clean repository
In your repository (either locally or on aisa) type
git status and check if your
repository is clean and you are present on the main branch (
trunk). If you do not know what your default branch is, it is probably
and you should not be on any other branch.
Output of the command should look like this:
aisa$ git status
On branch master # Or main or trunk.
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
In case you are on different branch or there are uncommitted changes, do not continue!!! Clean your repository (commit the changes or discard them), before you continue.
Step #2 - Create new branch
In your repository write command:
aisa$ git checkout -b BRANCH
Switched to a new branch 'BRANCH'
BRANCH use some reasonable name for the branch. For example if you
are working on the seminar from 3rd week, name the branch
Step #3 - Do the assignment
Download the skeleton for the seminar assignment, extract and program. For example if you are working on 3rd seminar, you can do so by:
aisa$ wget https://www.fi.muni.cz/pb071/seminars/seminar-03/pb071-seminar-03.zip
aisa$ unzip pb071-seminar-03.zip
# Now you should have directory 'seminar-03'.
aisa$ rm pb071-seminar-03.zip
aisa$ cd seminar-03
# You can work on the assignment.
Step #4 - Commit and upload the changes to GitLab
The same way you add and commit files for the homework assignments, you do for the seminar.
Now you can upload the changes to GitLab.
git push is not enough, since repository
on GitLab does not know your new branch. You can solve this by adding arguments:
aisa$ git push origin BRANCH
remote: To create a merge request for BRANCH, visit:
In the output you should have a link for creating a merge request. If you see this link, open it and skip next step.
Step #5 - Creating a merge request manually
- Open your repository on GitLab.
- On the left panel click on Merge Requests.
- Click on New Merge Request.
- In Source branch select
BRANCH, which you created.
- In Target branch select
login/pb071and your default branch you have seen in the output of the first command. (most likely
- Click on Compare branches and continue.
Step #6 - Set assignees
On the page that is opened, please check at the top that you are creating merge
request from your new branch to your default branch (one of
Then in the field Assignees set your tutors based on the seminar group. You can use login for a quick look up.
In the end click on Submit merge request.
Step #7 - Return to default branch
Homework assignments can be submitted only from branches specified in the rules for the course. Because of that, before you do anything else, you should switch back to your default branch.
First of all, same as in step #1, check that your repository is clean with
For the sake of safety, do not continue without clean repository. Then with command
git checkout BRANCH switch to your default branch
If you do not know which branch is your default, try
git branch that outputs all branches in your repository. Default branch is typically
master, but can
aisa$ git status
# Check if repository is clean
# If you know, what is your default branch, you can skip next command.
aisa$ git branch
# Find the default branch in the list; should be one of the `master`, `main` or
# `trunk` and you should not have more than one of those.
# In case the list clears the terminal and you cannot see shell prompt, you can
# press `q` to quit the pager.
aisa$ git checkout master
Adapted from: https://www.fi.muni.cz/~xlacko1/pb071/mr.html