Git im Team

» Gitolite installieren

» Rechtemanagement

» Git-Befehle für Teamworker

» Weiterführende Ressourcen




Stand: 11.06.2012
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
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
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
Rechtemanagement
# Gitolite documentation

http://sitaramc.github.com/gitolite/master-toc.html

# Access rules

http://sitaramc.github.com/gitolite/rules.html

# Special features and setups

http://sitaramc.github.com/gitolite/special.html




           CPS-IT Mehr Wert im Netz Git im Team       5
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
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

Git im team

  • 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 # Gitinstallieren 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 herunterladenund 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
  • 5.
    Rechtemanagement # Gitolite documentation http://sitaramc.github.com/gitolite/master-toc.html #Access rules http://sitaramc.github.com/gitolite/rules.html # Special features and setups http://sitaramc.github.com/gitolite/special.html CPS-IT Mehr Wert im Netz Git im Team 5
  • 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 # ProGit 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