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