Personlig Git-repo

UiOs Git-tjeneste støtter personlige Git-repoer. Bortsett fra registrering av SSH-nøkkel trenger man ikke involvere USIT for å opprette slike. Brukere kan selv justere tilgangsnivå o.l. for sine personlige Git-repoer.

1   Registrere SSH-nøkkel

Dersom du ikke allerede er registrert Git-bruker må SSH-nøkkelen din legges inn for Git-tjenesten. Dette er en manuell jobb som gjøres av USIT. Send den offentlige SSH-nøkkelen din til unix-drift@usit.uio.no for å bli registrert på Git-tjenesten.

2   Opprette nytt repository

Alle personlige Git-repoer ligger under stien:

u/<brukernavn>/<repo-navn>

For å opprette er det bare å klone repoet (eksempel for brukeren trondham):

$ git clone gitolite@git.uio.no:u/trondham/mittrepo
Initialized empty Git repository in /tmp/mittrepo/.git/
Initialized empty Git repository in /var/lib/git/repos/u/trondham/mittrepo.git/
warning: You appear to have cloned an empty repository.

Lag så innhold, og gjør commit:

$ git add *
$ git commit -m 'initial commit'
[master (root-commit) 90de8c8] initial commit
 2 files changed, 2 insertions(+), 0 deletions(-)
 create mode 100644 bar
 create mode 100644 foo

Til slutt gjør push til upstream:

$ git push origin master
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 262 bytes, done.
Total 4 (delta 0), reused 0 (delta 0)
remote: sed: can't read ./description: No such file or directory
To gitolite@git.uio.no:u/trondham/mittrepo
 * [new branch]      master -> master

Etter dette brukes repoet u/trondham/mittrepo på vanlig måte.

3   Kommandoer mot Git-tjenesten

Git-tjenesten støtter noen få kommandoer som brukere kan gjøre via SSH mot gitolite@git.uio.no:

ssh gitolite@git.uio.no <kommando> [argumenter]

Eksempel:

$ ssh gitolite@git.uio.no help
hello trondham, this is gitolite3 3.3-1.el6 on git 1.7.1

list of remote commands available:

        desc
        help
        info
        perms
        writable

Hver av disse kommandoene har egen hjelp. Eksempel:

$ ssh gitolite@git.uio.no desc -h
Usage:    ssh git@host desc <repo>
          ssh git@host desc <repo> <description string>

Show or set description for user-created ("wild") repo.

3.1   Endre description

Beskrivelse for personlige Git-repoer brukes kun ifm. presentasjon på web (http://git.uio.no/). Du kan endre beskrivelse selv, dette gjøres med kommandoen desc. Eksempel:

$ ssh gitolite@git.uio.no desc u/trondham/mittrepo 'Trond sitt test-repo'

3.2   Endre tilgang

Man kan gi andre registrerte brukere (se registrere ssh-nøkkel), samt de spesielle brukerne "daemon" og "gitweb", tilgang til sitt personlige repo med kommandoen perms.

Eksempel: Gi tilgang til brukerne daemon og gitweb, slik at repoet blir synlig på web, samt tilgjengelig for hele verden via Git-protokollen:

$ ssh gitolite@git.uio.no perms u/trondham/mittrepo + READERS daemon
$ ssh gitolite@git.uio.no perms u/trondham/mittrepo + READERS gitweb

Eksempel: Gi lese- og skrivetilgang til en annen bruker:

$ ssh gitolite@git.uio.no perms u/trondham/mittrepo + READERS staalej
$ ssh gitolite@git.uio.no perms u/trondham/mittrepo + WRITERS staalej

Eksempel: Fjerne skrivetilgangen:

$ ssh gitolite@git.uio.no perms u/trondham/mittrepo - WRITERS staalej

Eksempel: Liste opp tilganger:

$ ssh gitolite@git.uio.no perms u/trondham/mittrepo -l
READERS daemon
READERS gitweb
READERS staalej
WRITERS staalej

3.3   Stenge Git-repo

Man kan midlertidig stenge push til et repo med kommandoen writable. Eksempel:

$ ssh gitolite@git.uio.no writable u/trondham/mittrepo off 'ligg unna'

Ved forsøk på push til repoet vil man da få beskjeden man spesifiserte:

$ git push
FATAL: ligg unna
fatal: The remote end hung up unexpectedly

Repoet åpnes igjen slik:

$ ssh gitolite@git.uio.no writable u/trondham/mittrepo on

3.4   Liste opp dine repoer

Du kan få en liste over repoer du har tilgang til med kommandoen info. Eksempel:

$ ssh gitolite@git.uio.no info
hello trondham, this is gitolite@git-prod01 running gitolite3 3.3-1.el6 on git 1.7.1

     C  u/CREATOR/..*
 R W    check_linux_bonding
 R W    check_openmanage
 R W    gitolite-admin
 R W    testing
 R W    u/trondham/mittrepo

Please see http://www.uio.no/tjenester/it/maskin/filer/versjonskontroll/git.html for more help

3.5   Slette repo

For å få slettet et repo som ikke lenger er i bruk, kontakt unix-drift@usit.uio.no og be om å få det slettet.

Av Trond Hasle Amundsen
Publisert 17. sep. 2015 09:46