Git
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.