Size: 963
Comment:
|
Size: 4340
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
|| Git push/pull access || mainly via SSH over `git@git.math.uzh.ch` || | || Git push/pull access || mainly via SSH over `git@git.math.uzh.ch` - ```do not forget to upload your public ssh key``` || || Cheat sheet || [[http://www.git-tower.com/blog/git-for-subversion-users-cheat-sheet/|GIT for SVN users]] || <<TableOfContents>> |
Line 7: | Line 10: |
You need the following software: * [[http://git-scm.com/|Git]] * An SSH keypair. |
* [[http://git-scm.com/|Git]] installed (already done on IMATH server). * An SSH keypair - [[https://help.github.com/articles/generating-ssh-keys/|HowTo create private/public ssh keys]] |
Line 13: | Line 15: |
=== For Members of I-MATH === | == For Members of I-MATH == |
Line 16: | Line 18: |
=== For Non-Members of I-MATH === | == For Non-Members of I-MATH == |
Line 21: | Line 23: |
=== After the first-time login === | == After the first-time login == |
Line 23: | Line 25: |
* '''Recommended''': You need to provide your public SSH key. This can easily be done on the Gitlab web-interface. | |
Line 24: | Line 27: |
* 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. {{attachment:git.project.png}} * 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: {{{ git-commit }}} * 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 == * See: http://stackoverflow.com/a/17320081/1167442 {{{ $ 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 == * This is not how GIT should be used! * ONLY, ONLY, ONLY do this if it is absolutly necessary! * There might be side effects, you're on your own! * Source: https://github.com/nachoparker/git-forget-blob {{{ $ cd <root of your repo> $ git-forget-file.sh <path to file>/<file> }}} = FAQ = == Pipeline failed notification == * Maintainer receives all pipeline errors per mail by default {{attachment:screen_gitlab_error.png}} * Others can subscribe to it on the main site of a project: {{attachment:setting_notifaction.png}} |
Server
Server Info |
git.math.uzh.ch |
Software |
|
Git push/pull access |
mainly via SSH over git@git.math.uzh.ch - do not forget to upload your public ssh key |
Cheat sheet |
Contents
- Server
- Prerequisites
- Create/Request an account
- Login to Gitlab on `git.math.uzh.ch`
- Working with Git
- Managing your Projects with Gitlab
- GIT Best Practise
- FAQ
Prerequisites
Git installed (already done on IMATH server).
An SSH keypair - HowTo create private/public ssh keys
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 wan't 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:
git-commit
- 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.
Purge a file completely from all commits & branches
- This is not how GIT should be used!
- ONLY, ONLY, ONLY do this if it is absolutly necessary!
- There might be side effects, you're on your own!
$ cd <root of your repo> $ git-forget-file.sh <path to file>/<file>
FAQ
Pipeline failed notification
- Maintainer receives all pipeline errors per mail by default
- Others can subscribe to it on the main site of a project: