location: Git

Institute of Mathematics - PublicMathWiki:


Server Info




Git push/pull access

mainly via SSH over git@git.math.uzh.ch - do not forget to upload your public ssh key

Cheat sheet

GIT for SVN users


Create/Request an account

For Members of I-MATH

  • You don't need to request a special account for Gitlab.

For Non-Members of I-MATH

If you want to collaborate with a project which is hosted on git.math.uzh.ch, you need to request a special Gitlab account. It's best if you write an email with a request to 'support AT math.uzh.ch'.

You will then receive an email for validation and first-time login.

After the first-time login

  • If you requested an "external" account, you will be asked to change your initial password.
  • Recommended: You need to provide your public SSH key. This can easily be done on the Gitlab web-interface.

Login to Gitlab on `git.math.uzh.ch`

For Members of I-MATH

choose 'LDAP login'

For Non-Members of I-MATH

choose 'External login'

Working with Git

git COMMAND git@git.math.uzh.ch/<username>/<projectname>

Managing your Projects with Gitlab

Gitlab has quite extensive managing capabilities.

  • You can, among other things,
    • Crate/fork/rename/remove projects
    • Create/delete/join Teams
    • Assing members with roles to projects
    • Create/Assing issues
    • Have a wiki for a project
  • The gitlab user documentation is found on https://git.math.uzh.ch/help.

GIT Best Practise

New project from scratch

  • Create a new project via the webinterface.


  • You'll see a summary with the next steps:

Git global setup
git config --global user.name "First Lastname"
git config --global user.email "email@math.uzh.ch"

Create a new repository
mkdir <local projektdir>
cd <local projektdir>
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin git@git.math.uzh.ch:<project>.git
git push -u origin master

Push an existing Git repository
cd existing_git_repo
git remote add origin git@git.math.uzh.ch:<project>.git
git push -u origin master

GIT daily use

Local: Add new files to existing repo

git add <file>

Local: Work on your files

  • Commit changes locally

git commit -a
  • Or at IMATH you can use git-commit, which will in every file replace $Id$ by User/timestamp:

  • Commit changes remote

git push

Local: clone an existing repo to start working on it

git clone git@git.math.uzh.ch:<project>.git

Purged Remote branches still shown locally

$ git remote update --prune

Visually show commit history

  • gitg

  • Use the git.math.uzh.ch webinterface

Search the commit which breaks something

  • Based on binary search.
  • Give a good and a bad commit.
  • The git bisect ... command looks always for the commit in the middle. Do a check of such a commit and decide to continue the search in the lower or upper half.

  • https://git-scm.com/docs/git-bisect

Purge a file completely from all commits & branches

$ cd <root of your repo>
$ git-forget-file.sh <path to file>/<file>


Pipeline failed notification

  • Maintainer receives all pipeline errors per mail by default
    • screen_gitlab_error.png

  • Others can subscribe to it on the main site of a project:
    • setting_notifaction.png

Windows Change Saved Git Password

  • Open "Credential Manager" (German: "Anmeldeinformationsverwaltung")
    • 01_credential_manager.png

  • Choose "Windows Credentials" (German: "Windows-Anmeldeinformationen") and remove all saved credentials for Git.
    • 02_windows_credentials.png

  • Use git as usual, you will be asked to enter your password

PublicMathWiki: Git (last edited 2019-10-01 11:25:13 by megger)