Git

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
In Bearbeitung...

Diese Wiki-Seite befindet sich gerade im Aufbau und ist noch nicht fertig! Wenn Sie möchten, können Sie gerne Inhalte ergänzen.

Git

erste Konfiguration

Zunächst sollte man sich Git vorstellen (am Besten sowohl auf dem Server, als auch auf dem eigenen Rechner).

git config --global user.name "Ihr Name"
git config --global user.email yourmail@example.com"

Repository lokal erstellen

Dieser Abschnitt soll und kann die Lektüre einer ordentlichen Anleitung nicht ersetzen und dient eher zur Erinnerung.

REPOSITORY="my-repository.git"
mkdir $REPOSITORY
cd $REPOSITORY
git init
git add .
git commit -a

Weitere Dateien/Verzeichnisse/Muster hinzufügen:

git add foo
git add *bar
git commit -a


Git-Server einrichten

Dieser Artikel erläutert, wie man auf schokokeks.org einen Git-Server über HTTP mit WebDAV einrichten kann.

WebDAV-Verzeichnis einrichten

Zunächst wird ein Verzeichnis eingerichet, auf das später mit Hilfe von WebDAV zugegriffen werden soll.

VIRTUALHOST="webdav.example.com"
mkdir ~/websites/$VIRTUALHOST
mkdir ~/websites/$VIRTUALHOST/htdocs
cd ~/websites/$VIRTUALHOST
setfacl -m default:u:$USER:rwx,default:u:apache:rwx htdocs
touch webdav.users
touch webdav.groups
touch .htaccess

Der Wert von VIRTUALHOST ist hierbei die Domain, die später im Config-Interface für WebDAV eingerichtet wird. Die Datei .htaccess dient zur Rechteverwaltung, damit nicht jeder das Verzeichnis lesen und/oder beschreiben kann.

Sie sollte folgenden Text enthalten:

AuthUserFile /home/mitja/websites/webdav.example.com/webdav.users
AuthGroupFile /home/mitja/websites/webdav.example.com/webdav.groups
AuthName "WebDAV on webdav.example.com"
AuthType Basic
require group read
<Limit POST PUT DELETE MKCOL COPY MOVE PROPPATCH>
         require group write
</Limit>

Die Datei webdav.users enthält die Benutzernamen und Passwörter, wie jede .htpasswd-Datei. Näheres erläutert man htpasswd. webdav.groups fasst mehrere Benutzernamen zu Gruppen zusammen in dem Stil

gruppe1: benutzer1 benutzer2 benutzer3
gruppe2: benutzer3

In dem obigen Beispiel hat die Gruppe "write" Schreibzugriff, die Gruppe "read" Lesezugriff. Anonymer Zugriff ist gesperrt.

Soll jedes einzelne Repository gesondert verwaltet werden, müssen für jedes Repository eigene Zugriffsrechte wie in dem Beispiel definiert werden.

Zum Schluss sollte der gewünschte VHost im Konfigurationsinterface erstellt und auf WebDAV gestellt werden.

Repository erstellen

Bisher kann git-http-push noch kein Git-Repository erstellen, deshalb muss es auf dem Server erstellt oder manuell hochgeladen werden.

REPOSITORY="my-first-repo.git"
mkdir $REPOSITORY
cd $REPOSITORY
git --bare init


Client konfigurieren

Damit man nicht jedes Mal das WebDAV-Passwort eingeben muss, schreibt man den folgenden Text in die Datei ~/.netrc.

machine <servername>
login <username>
password <password>

<servername> entspricht dem VirtualHost.

Nicht vergessen:

chmod 600 ~/.netrc


Erster push

Das vorhandene lokale Repository benötigt zunächst noch die URL, zu der gepusht werden soll. Wir befinden uns im lokalen Repository-Verzeichnis.

git-config remote.upload.url http://<username>@<servername>/my-first-repo.git/

'upload' ist ein beliebiger Name. Der letzte Slash ("/") ist hierbei unbedingt erforderlich!

Nach dem ganzen Vorgeplänkel ist es nun soweit:

git push upload master

Mit diesem Befehl wird der 'master' Branch gepusht. 'upload' ist wieder der im vorigen Befehl konfigurierte und frei gewählte Name.