23.July 2017    

Google

   homeProjekteLinuxgit setup quick and dirty

 

Hobby 234x60
reichelt elektronik – Elektronik und PC-Technik
Seite zuletzt geändert: 04.11.2012 15:41

Kleine Anleitung zur Installation, Konfiguration und Nutzung von git

Basis für folgende (noch nicht fertiggestellte) Kurzanleitung ist Debian. Bei anderen Distributionen sind speziell für die Paketinstallation andere Befehle anzuwenden. Ich gehe aber davon aus, dass die Benutzer dieser Distributionen diese kennen.

 

Zunächst die Installation von git auf dem Server und Vorbereiten der Speicherverzeichnisse

apt-get install git gitweb
mkdir /var/cache/git
cd /var/cache/git
mkdir test.git
cd test.git
git init --bare
chown -R www-data.www-data /var/cache/git/test.git

 

Erstellen von /etc/xinetd.d/git-daemon (nur notwendig, wenn git-Protokoll benötigt wird) mit diesem Inhalt:

service git
{
    disable        = no
    type           = UNLISTED
    port           = 9418
    socket_type    = stream
    wait           = no
    user           = nobody
    server         = /usr/lib/git-core/git-daemon
    server_args    = --inetd --export-all --base-path=/var/cache --syslog
    log_on_failure += USERID
}

Auf einem öffentlichen Server sollte man darauf verzichten, da das git-Protokoll keine Sicherheitsmechanismen wie Benutzername/Kennwort oder dergleichen kennt. Stattdessen sollte man die Kommunikation über das http-Protokoll wählen, das nachfolgend beschrieben wird.

 

Voraussetzung für die Kommunikation per http ist natürlich ein Webserver, hier setze ich voraus, dass sich auf dem Server bereits ein lauffähiger Apache befindet.

Erstellen der Datei /etc/apache2/conf.d/git mit diesem Inhalt:

SetEnv GIT_PROJECT_ROOT /var/cache/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
<Location /git>
        AuthType Basic
        AuthName "Git Access"
        Require group committers
        AuthUserFile /var/www/git/.htusers
        AuthGroupFile /var/www/git/.htgroups
</Location>

 

Ausführen von diesen Schritten, um die Zugriffe auf git per http-Protokoll zu ermöglichen

mkdir /var/www/git
cd /var/www/git
vi .htgroups

 

Die .htgroups Datei bekommt z.B. diesen Inhalt:

commiters: <yourusername>

 

Die .htpasswd-Datei erstellen wir mit dem Befehl htpasswd im Verzeichnis /var/www/git, dabei werden wir zweimal nach dem Passwort gefragt.

htpasswd -c .htusers <yourusername>
New password: <yourpassword>
Re-type new password: <yourpassword>
Adding password for user <yourusername>

 

Dann noch den Apache neu laden (/etc/init.d/apache2 restart) und wir sollten per http auf git zugreifen können.

 

Auf dem Client können wir das jetzt testen. In einem passenden Verzeichnis führen wir aus:

git clone <host>/git/test.git
Cloning into 'test'...
Username for 'http://<host>': <yourusername>
Password for 'http://<yourusername>@<host>': <yourpassword>
warning: You appear to have cloned an empty repository.

 

Wenn wir so weit gekommen sind, sieht es schon sehr gut aus. Jetzt noch die umgekehrte Richtung testen.

Dazu kopieren wir ein paar Dateien in das neu generierte git-Verzeichnis und führen dann in dem Verzeichnis dieses aus:

git add .
git commit

 

Beim "commit" etwas Text eingeben oder einfach die Default-Zeile mit dem "Initial commit" von ihrem "#" am Anfang befreien. Es muss mindestens eine nicht auskommentierte Zeile im Commit-Text existieren, sonst wird das Commit nicht ausgeführt!

Wenn es keine Fehler gegeben hat, dann sollten wir im Verzeichnis ./.git/objects neben den vorher vorhandenen "info" und "pack" auch noch weitere Unterverzeichnisse mit zweistelligen Hexadezimal-Namen sehen.

 

Auf unseren Server können wir diese neuen Dateien jetzt hiermit hochladen:

git push --all

Im Resultat sollten wir nun auch auf dem Server im "objects"-Verzeichnis die neuen Unterverzeichnisse sehen.

 

 

Übernahme von Subversion (svn)

apt-get install git-svn
git svn clone svn://<svn-url> <destinationdir>

 

 

Keine Kommentare
Kommentar hinzufügen

* - Pflichtfeld

*



*
Copyright © 2008-2017