Git: Unterschied zwischen den Versionen

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
Mitja (Diskussion | Beiträge)
vom Client pushen
Mitja (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 5: Zeile 5:
Zunächst sollte man sich Git vorstellen (am Besten sowohl auf dem Server, als auch auf dem eigenen Rechner).
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.name "Ihr Name"
  git config --global user.email yourmail@example.com"
  git config --global user.email "yourmail@example.com"


== Repository lokal erstellen ==
== Repository lokal erstellen ==
Zeile 22: Zeile 22:




= Git-Server einrichten =
= Git-Server mit WebDAV =


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


== WebDAV-Verzeichnis einrichten ==
Leider ist ''git-http-push'' fehlerhaft und wird in Zukunft in Git eventuell sogar komplett deaktiviert werden.
Zunächst wird ein Verzeichnis eingerichet, auf das später mit Hilfe von WebDAV zugegriffen werden soll.
Bei Benutzung von ''git-http-push'' wird das Repository manchmal reparabel, manchmal irreparabel beschädigt, es besteht Gefahr des '''Datenverlusts'''!


VIRTUALHOST="webdav.example.com"
Normales Arbeiten ist damit zumindest nicht möglich. Daher wird von der Benutzung abgeraten!
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 [https://config.schokokeks.org/ 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.

Version vom 9. Mai 2008, 13:38 Uhr

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 mit WebDAV

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

Leider ist git-http-push fehlerhaft und wird in Zukunft in Git eventuell sogar komplett deaktiviert werden. Bei Benutzung von git-http-push wird das Repository manchmal reparabel, manchmal irreparabel beschädigt, es besteht Gefahr des Datenverlusts!

Normales Arbeiten ist damit zumindest nicht möglich. Daher wird von der Benutzung abgeraten!