1. Git im Team
» Gitolite installieren
» Rechtemanagement
» Git-Befehle für Teamworker
» Weiterführende Ressourcen
Stand: 11.06.2012
2. Gitolite installieren – lokale Vorbereitung
# Falls kein SSH-Key vorhanden ist, diesen erstellen
ssh-keygen -t rsa -C 'User 1'‚
# SSH-Key auf den Server laden
# Dieser wird später bei der Installation dem Admin-User zugewiesen
scp .ssh/id_rsa.pub server.tld:/tmp/benutzername.pub
CPS-IT Mehr Wert im Netz Git im Team 2
3. Gitolite installieren
# Git installieren
sudo aptitude install git-core
# User anlegen
# Dieser User dient als Login für den späteren Git-Zugriff auf den Server
# Shell-Angabe ist für den Zugriff per SSH wichtig
# Gruppe ist die Standardgruppe vom Apache, diese kann auch leer gelassen werden (--group )
sudo adduser
--shell /bin/sh
--gecos 'git version control'
--ingroup 'www-data'
--disabled-password
--home /srv/git
git
# Den User wechseln und ins Home-Verzeichnis gehen
su git
cd ~
# Gitolite-Source herunterladen
git clone git://github.com/sitaramc/gitolite gitolite-source
# Gitolite installieren und mit vorher hochgeladenem Admin-Key verknüpfen
gitolite-source/src/gitolite setup -pk /tmp/benutzername.pub
CPS-IT Mehr Wert im Netz Git im Team 3
4. Rechtemanagement
# Konfigurationsrepository herunterladen und Datei gitolite.conf im Ordner conf/ öffnen
git clone git@server.tld:gitolite-admin
# Gruppen definieren
@admins = user1
@team = dilbert alice wally @admins
# Standardrechte definieren
#R = nur lesen
# RW = Lesen und Schreiben (push ist erlaubt, neue Branches/Tags können angelegt werden)
# RW+ = Bestehende refs können überschrieben werden (git push –f)
#- = Kein Zugriff
repo @all
RW+ = @admins
R = @team
RW+ personal/USER/ = @team
repo gitolite-admin
RW+ = @admins
# Rechte für ein (neues) Repository setzen
Repo foo
RW+ = dilbert
RW+ dev = alice
- = wally
RW temp/ = @team
R = ashok
CPS-IT Mehr Wert im Netz Git im Team 4
6. Git-Befehle für Teamworker
# Commits in das Server-Repository integrieren
git push origin master
# Neue Änderungen vom Server-Repository laden (ohne Veränderung des lokalen Repositories)
git fetch origin
# Änderungen in das lokale Repository übernehmen
git merge origin/master
# Text der Änderungen generieren lassen für Email
git request-pull origin/master master
# Patches in mbox-formatierte Dateien erstellen
git format-patch -M origin/master
# Patch-Dateien übernehmen
git apply --check /tmp/new-patch.patch
git apply /tmp/new-patch.patch
# mbox-formatierte Dateien übernehmen
git am /tmp/patch-in-mbox.patch
CPS-IT Mehr Wert im Netz Git im Team 6
7. Weiterführende Ressourcen
# Pro Git
http://git-scm.com/book/
# Git- kurz & gut (O'Reilly)
http://www.amazon.de/Git--kurz-gut-Sven-Riedel/dp/389721914X/ref=sr_1_2?s=books&ie=UTF8&qid=1339411563&sr=1-2
# Einstieg in Git
http://rogerdudler.github.com/git-guide/index.de.html
# Git live erleben
http://www.codeschool.com/courses/try-git
# SVN-Repositories nach Git konvertieren
http://de.gitready.com/beginner/2009/02/04/converting-from-svn.html
CPS-IT Mehr Wert im Netz Git im Team 7