it-swarm.com.de

Einrichten eines Git-Servers

Ich habe vor kurzem Ubuntu-Server auf Amazon EC2 eingerichtet. Ich möchte es als meinen Git-Server verwenden, damit ich meine Repos dort aufbewahren kann.

Wo finde ich eine detaillierte Anleitung zum Einrichten von Git auf einem Ubuntu-Server? All diese SSH-Schlüssel und ähnliches, mehrere Benutzer usw.

57
Pawełkowy

Sie können das Tutorial zum Installieren eines Git-Servers wie von aking1012 vorgeschlagen verwenden oder einfach den SSH-Server auf Ihrer EC2-Instanz installieren (wahrscheinlich ist es ratsam, ihn zu sichern und den Standardport zu ändern).

Git kann serverlos sein, wenn Sie Ihr Repository initialisieren und dann von einem entfernten Standort über SSH darauf zugreifen. Anweisungen wie diese auf dem Ubuntu-Server sollten es also tun:

GIT_DIR=project.git git init  
cd project.git  
git --bare update-server-info  
cp hooks/post-update.sample hooks/post-update

Installieren Sie abschließend SSH auf Ihrem Server:

Sudo apt-get install ssh-server

Jetzt sollten Sie SSH konfigurieren, um es zu sichern.

Es ist Zeit, Ihr Projekt online zu stellen (die Daten, die Sie bereits auf Ihrem Entwicklungscomputer haben):

git Push ssh://<username>@<remote-git-hostname>/path/to/project.git master

Und jetzt können Sie mit dem Klonen beginnen. Sie gehen auf Ihre Entwicklungsmaschine:

git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git

Überprüfen Sie diese ausgezeichnete Ressource auf Git .

Um Ihre SSH-Schlüssel für eine sicherere Authentifizierung zu generieren, lesen Sie diesen Artikel über SSH-Authentifizierung .

38
Huygens

Für alle meine Git-Server-Setups verwende ich Gitolite , was eine Sicherheitsgranularität für den Zugriff pro Zweig ermöglicht. Das Setup ist ziemlich einfach, wenn Sie es auf einem Remote-Server ausführen, es ist so einfach wie das Ausführen eines interaktiven Skripts. Zusätzlich zu dieser "einfach einzurichtenden" Natur gibt es auch ein Paket in Natty und Maverick

Sudo apt-get install gitolite

Dies wird kein Web-Frontend wie Github oder Gitweb bieten - aber Sie können diese auf einfache Weise über etwas wie Gitolite konfigurieren und installieren.

15
Marco Ceppi

Ich mag Gitolit . Auf dem Pro Git-Buch steht ein Abschnitt , aber ich empfehle, das ganze Buch zu lesen.

Wie für Ihre Mehrbenutzeranforderung:

Mit Gitolite können Sie Berechtigungen nicht nur nach Repository (wie bei Gitosis), sondern auch nach Zweig- oder Tagnamen in jedem Repository festlegen. Das heißt, Sie können festlegen, dass bestimmte Personen (oder Gruppen von Personen) nur bestimmte "refs" (Zweige oder Tags), nicht jedoch andere pushen können.

9
Li Lo

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way kann leicht an Ihre Zwecke angepasst werden ... a ähnliches Tutorial http://blog.agdunn.net/?p=277 .

7
RobotHumans

Befolgen Sie auf jeden Fall die offizielle Dokumentation: https://help.ubuntu.com/community/Git (section Einrichten der Git- und Projektverwaltung )

6
chris

Die Lösung, die für mich am besten funktionierte, war das Einrichten von WebDAV.

  • Sudo a2enmod Sudo dav_fs

  • Sudo a2enmod dav

  • fügen Sie eine neue Datei zu /etc/Apache2/sites-available hinzu und nennen Sie sie beispielsweise git.yourserver.com. Bearbeiten Sie es und fügen Sie folgende Zeilen hinzu:

<VirtualHost *:80>

DocumentRoot /var/www/git.yourserver.com/repos
ServerName git.yourserver.net
Options Indexes FollowSymLinks MultiViews

<Location />
    DAV On
    AuthType Basic
    AuthName "git repos"
    AuthUserFile /var/www/git.yourserver.net/password.dav
    Require valid-user
</Location>

</VirtualHost>

  • erstelle das Verzeichnis /var/www/git.yourserver.com und das Verzeichnis repos innerhalb der ID
  • Sudo chown www-data /var/www/git.yourserver.com/repos
  • Sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login und geben Sie das Passwort für den Benutzer user_login ein.
  • Sudo chown root:www-data /var/www/git.yourserver.com/password.dav
  • Sudo chmod 640 /var/www/git.yourserver.com/password.dav

Nun, Sudo a2ensite git.yourserver.com und Sudo service Apache2 restart.

  • Geben Sie /var/www/git.yourserver.com/repos ein und erstellen Sie ein Verzeichnis, z. B. myrepo.git
  • cd myrepo.git
  • git --bare init
  • git update-server-info

Melden Sie sich jetzt von Ihrem Remote-Server ab und wechseln Sie in das lokale Verzeichnis, in dem Sie Ihre Dateien bearbeiten möchten.

git clone http://user_login:[email protected]/myrepo.git

und du bist fertig. Wenn Sie Ihre festgeschriebenen Änderungen an den Server senden möchten:

git Push Origin master

Sie können mit Sudo htpasswd so viele Benutzer erstellen, wie Sie möchten. Denken Sie daran, den Schalter -c nicht zu verwenden, wenn Sie weitere Benutzer hinzufügen, da alte Dateien gelöscht werden.

4
Pawełkowy

Ich mag auch den Gitolite Ansatz zur Verwaltung von Benutzern und Sicherheit. Ich habe einen Git + Gitolite Server AMI für EC2, der gerade getestet wird. Probieren Sie es einfach aus. Dokumentation finden Sie hier:

Alestic Git Server

Mit diesem Ansatz können Sie in wenigen Minuten einen zentralen Git-Server mit privaten Repositorys einrichten. Es gibt eine Lernkurve für Gitolite und EC2, wenn Sie mit diesen nicht vertraut sind.

3
Eric Hammond

Es ist sehr einfach mit Gitolit zu erreichen. In weniger als einer Stunde haben Sie einen einfach konfigurierbaren und sicheren Multiuser-Git-Server.

Ich habe einen Howto-Artikel über meine Seite

3
realcnbs