Ich suche nach einer Installation eines Git-Servers, um Projekte mit meinem Team zu teilen.
Sie können nur Git verwenden.
Um einen Git-Server zu haben, brauchen Sie auf dem Remote-Server nur Git. Wenn Sie keine detaillierten Berechtigungen (das Teilen mit nur Ihrem Team deutet darauf hin, dass dies möglich ist) oder zusätzliche Funktionen benötigen, benötigen Sie kein Gitolite oder ähnliches.
Die No-Install-Lösung
Wenn git auf dem Remote-Server verfügbar ist, können Sie das tun, was Sie gerade verlangen, ohne etwas zu tun
ssh [user@]server
cd repos/are/here/
mkdir project.git
cd project.git
git init --bare
Örtlich:
cd projects/are/here/project
git remote add origin [user@]server:repos/are/here/project.git
git push -u origin master
Das Einrichten eines Git-Servers ist einfach.
Wenn Sie Dinge mit einem dedizierten Git-Benutzer tun möchten, sind die Dokumente zum Einrichten eines Git-Servers kurz - weil dies wirklich recht einfach ist.
Zusammenfassend:
- Git installieren
- Erstellen Sie einen Benutzer namens git
- Fügen Sie die öffentlichen Schlüssel Ihres und Ihres Teams zur
.ssh/authorized_keys
Datei des Git-Benutzers hinzu
- Ändern Sie die Shell des Git-Benutzers in
git-shell
- Erstellen Sie Repos auf dem Server
- Starten Sie git pull / push an [email protected]
Der einzige Unterschied zwischen der Verwendung eines dedizierten Git-Benutzers und der Verwendung eines dedizierten Git-Benutzers besteht darin, dass sich der Git-Benutzer beim Einrichten git-shell
nicht dazu berechtigt, etwas anderes zu tun. In Bezug auf die Funktion als Git-Server ist dies jedoch identisch mit der No-Install-Lösung
git push -u origin master
und du kannst danach verwendengit push
. Ich bevorzuge gito *, weil meiner Meinung nach niemand, der auf ein Repo zugreift, sich um den absoluten Pfad kümmern muss, den es auf dem Remote-System hat./home/git/
die URL einfügen, um auf ein Projekt zuzugreifengit@server:project.git
.Der Hauptunterschied besteht darin, dass die Gitose inzwischen veraltet ist und nicht mehr aktiv aufrechterhalten wird.
Gitolite ist viel umfassender und hat gerade seine dritte Version veröffentlicht .
Die interessanteste Funktion ist die virtuelle Referenz (kurz VREF) , mit der Sie so viele Update- Hooks deklarieren können, wie Sie möchten, wodurch Sie einen Push-by einschränken können:
Verzeichnis- / Dateiname :
Angenommen, Sie möchten nicht, dass Nachwuchsentwickler Änderungen am Makefile vornehmen, da dies recht komplex ist:
- VREF/NAME/Makefile = @junior-devs
Anzahl neuer Dateien :
Angenommen, Junior-Entwickler möchten nicht, dass mehr als 9 Dateien pro Commit übertragen werden, da sie kleine Commits ausführen sollen:
- VREF/COUNT/9/NEWFILES = @junior-devs
Erweiterte Dateityperkennung :
Manchmal hat eine Datei eine Standarderweiterung (die nicht "gitignore'd" sein kann), aber sie wird tatsächlich automatisch generiert. Hier ist eine Möglichkeit, es zu erfassen:
- VREF/FILETYPE/AUTOGENERATED = @all
Sehen
src/VREF/FILETETYPE
Sie sich den Erkennungsmechanismus an.Überprüfen der E-Mails des Autors :
Einige Personen möchten sicherstellen, dass "Sie nur Ihre eigenen Commits pushen können".
- VREF/EMAIL-CHECK = @all
Siehe
src/VREF/EMAIL-CHECK
.Abstimmung über Commits :
Eine grundlegende Implementierung der Abstimmung über Commits ist überraschend einfach :
- VREF/EMAIL-CHECK = @all
.# 2 votes required to push master, but trusted devs don't have this restriction
# RW+ VREF/VOTES/2/master = @trusted-devs
# - VREF/VOTES/2/master = @devs
Siehe
src/VREF/VOTES
für die Implementierung.und so weiter...
quelle
Nur eine Nebenbemerkung. Sie können Gerrit auch für Ihre Anforderungen verwenden:
Gerrit Code Review
Zunächst scheint Gerrit für die Codeüberprüfung verwendet zu werden, aber Sie können es auch zum Verwalten von Benutzern verwenden und ihnen genau definierte Berechtigungen erteilen. Sie können die Codeüberprüfung (über Zugriffskontrollen ) umgehen und sie nur zum Verwalten von Projekten und SSH-Schlüsseln verwenden. Gerrit hat einen wirklich starken Zugangskontrollmechanismus:
Gerrit Access Controls
Sie können die Suche nach Zweigen, Tags oder allem, was Sie sich vorstellen können, das im Dokument zur Zugriffskontrolle definiert ist, einschränken.
quelle
Für eine noch schnellere und schmutzigere Lösung verwenden Sie einfach den Git-Daemon und gehen Sie Peer-to-Peer. Hier ist ein Artikel darüber.
Bearbeiten: Ich erkenne, dass dies die Frage des OP nicht streng beantwortet. Ich habe dies hier hauptsächlich für diejenigen wie mich angegeben, die darauf stoßen, während sie nach einer heruntergekommenen und schmutzigen Möglichkeit suchen, Code zu teilen, bis ein Unternehmens-Github-Konto eingerichtet wird.
quelle
Ich habe eine Weile herumgespielt , um einen Git-Server mit LDAP-Zugriff, fein abgestimmter Zugriffskontrolle usw. zum Laufen zu bringen. Eine Offenbarung gefunden: Verwenden Sie Gitlab :
Wenn Sie die schnelle und schnelle Installationsmethode wünschen: Verwenden Sie das Bitnami-Installationsprogramm
quelle