Git: Unterschied zwischen den Versionen

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
Mitja (Diskussion | Beiträge)
K setfacl hinzugefügt
Unsinnigen ssh-link nicht erstellen mit nowiki
 
(7 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{UnderConstruction}}
{{Box
| title = Warning
| content = Diese Anleitung wurde von einem Kunden bereitgestellt. Wir empfehlen wenn dies möglich ist Gitolite nicht manuell zu installieren, sondern die von uns zentral verwaltete Instanz zu nutzen. Sie können Repositories und Accounts in unserem Konfigurationsinterface unter dem Punkt Benutzeraccounts / Git-Zugänge einrichten.
| image = Construction.png
| background = white
| border_color = red
| border_thickness = 2px
}}


= 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"


= Git über SSH =


= Git-Server einrichten =
== Direkt im Benutzeraccount ==
Die einfachste Methode ohne besondere Konfiguration besteht darin, ein GIT-Repository in Ihrem Benutzeraccount anzulegen und per SSH darauf zuzugreifen. Der Zugriff erfolgt dann z.B. mittels
<nowiki>git remote add origin ssh://benutzer@zucker.schokokeks.org/~/git/my-repo.git</nowiki>
Diese Methode steuert den Zugriff nicht separat sondern erfordert eine SSH-Anmeldung um das Repository lesen und schreiben zu können. Ein Arbeiten mit mehreren Entwicklern ist damit nicht empfehlenswert.


Dieser Artikel erläutert, wie man auf schokokeks.org einen Git-Server über HTTP mit [[WebDAV]] einrichten kann.
== Gitosis / Gitolite ==
Auf unseren Servern ist Gitolite bzw. Gitosis intalliert und kann von jedem Benutzer in seinem eigenen Home-Verzeichnis benutzt werden.


== WebDAV-Verzeichnis einrichten ==
Bei diesem Verfahren authentifizieren sich die Entwickler per SSH-Key, somit kann einem Entwickler Zugriff auf ein Repository eingeräumt werden ohne Shell-Zugriff zu erlauben. Es gibt einige Unwegsamkeiten um einen normal betriebenen Benutzeraccount mit gitosis bzw. gitolite zu nutzen. Wir raten davon ab.
Zunächst wird ein Verzeichnis eingerichet, auf das später mit Hilfe von WebDAV zugegriffen werden soll.


VIRTUALHOST="webdav.example.com"
== zentral administriertes Gitolite ==
mkdir ~/websites/$VIRTUALHOST
Sie können ebenfalls unsere zentrale Installation von Gitolite nutzen. Das Verfahren arbeitet ebenfalls über SSH-Keys.  
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.
Im Webinterface finden Sie unter "Benutzeraccounts" den Unter-Punkt "GIT-Zugänge". Dort können Sie öffentliche SSH-Schlüssel hinterlegen und Repositories anlegen.
 
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

Aktuelle Version vom 10. Februar 2019, 12:26 Uhr

Warning

Diese Anleitung wurde von einem Kunden bereitgestellt. Wir empfehlen wenn dies möglich ist Gitolite nicht manuell zu installieren, sondern die von uns zentral verwaltete Instanz zu nutzen. Sie können Repositories und Accounts in unserem Konfigurationsinterface unter dem Punkt Benutzeraccounts / Git-Zugänge einrichten.


Git über SSH

Direkt im Benutzeraccount

Die einfachste Methode ohne besondere Konfiguration besteht darin, ein GIT-Repository in Ihrem Benutzeraccount anzulegen und per SSH darauf zuzugreifen. Der Zugriff erfolgt dann z.B. mittels

git remote add origin ssh://benutzer@zucker.schokokeks.org/~/git/my-repo.git

Diese Methode steuert den Zugriff nicht separat sondern erfordert eine SSH-Anmeldung um das Repository lesen und schreiben zu können. Ein Arbeiten mit mehreren Entwicklern ist damit nicht empfehlenswert.

Gitosis / Gitolite

Auf unseren Servern ist Gitolite bzw. Gitosis intalliert und kann von jedem Benutzer in seinem eigenen Home-Verzeichnis benutzt werden.

Bei diesem Verfahren authentifizieren sich die Entwickler per SSH-Key, somit kann einem Entwickler Zugriff auf ein Repository eingeräumt werden ohne Shell-Zugriff zu erlauben. Es gibt einige Unwegsamkeiten um einen normal betriebenen Benutzeraccount mit gitosis bzw. gitolite zu nutzen. Wir raten davon ab.

zentral administriertes Gitolite

Sie können ebenfalls unsere zentrale Installation von Gitolite nutzen. Das Verfahren arbeitet ebenfalls über SSH-Keys.

Im Webinterface finden Sie unter "Benutzeraccounts" den Unter-Punkt "GIT-Zugänge". Dort können Sie öffentliche SSH-Schlüssel hinterlegen und Repositories anlegen.