415 Stimmen

Git-Server wie GitHub?

Ich bin ein langjähriger Subversion-Benutzer, der nun Git ausprobieren will. Ich habe einiges darüber gelesen und verstehe die verteilte Natur - ich kann viele der Vorteile erkennen.

Mir gefällt jedoch die Idee eines zentralen Servers, der die Rolle der Datensicherung, des Systems der Aufzeichnungen usw. übernehmen kann, während ich weiterhin Git für meine lokale Verzweigung und Freigabe verwende. Ich bin nicht tun, ein Open-Source-Projekt, so kann ich nicht verwenden Github (ohne zu bezahlen), so meine Frage wirklich ist: Was ist die beste Methode, um einen lokalen Git-Server zu betreiben?

Mir ist klar, dass dies gegen das Standard-Git-Nutzungsmuster verstößt, aber es wird für mein Projekt nützlich sein. Bedenken, die ich möglicherweise übersehen habe, sind jedoch immer willkommen.

Gracias.

202voto

Chris Eberle Punkte 46685

Sie können einfach einen ssh-Server einrichten und dort ein zentrales Repository betreiben. Alle Entwickler vereinbaren dann einfach (als eine Frage der Politik), auf den Server zu pushen, wenn sie mit den Übertragungen fertig sind. Dies ist das Nutzungsmuster an meinem Arbeitsplatz. Sehr ähnlich wie CVS und SVN.

  1. Finden Sie einen Platz für das Repository ( /var/gitroot zum Beispiel).
  2. Erstellen Sie ein neues Repo ( mkdir project.git && cd project.git && git init --bare --shared=group ).
  3. Klonen Sie dann auf Ihrem Client das entfernte Projektarchiv ( git clone ssh://yourserver.com/var/gitroot/project.git && cd project )
  4. einige Dateien hinzufügen ( git add README )
  5. begehen ( git commit -m "Initial import" ),
  6. schieben ( git push origin master )

Dies sollte Ihnen helfen, sich zurechtzufinden.

199voto

Craig Punkte 7101

Gitorious ist eine Open-Source-Webschnittstelle zu Git, die Sie auf Ihrem eigenen Server betreiben können, ähnlich wie Github:

http://getgitorious.com/

Aktualisierung:

http://gitlab.org/ ist jetzt auch eine weitere Alternative.

Update 2:

Gitorious hat sich jetzt mit GitLab zusammengeschlossen

75voto

Plamen Nikolov Punkte 4147

Versuchen Sie GitLab

Das beste Git-GUI-Tool, das ich je benutzt habe. Es ist sehr ähnlich zu GitHub.

Es ist Open Source (MIT-Lizenz) und mit über 25.000 Installationen die am häufigsten installierte Git-Verwaltungssoftware. Es gibt monatliche Veröffentlichungen und eine aktive Gemeinschaft mit über 375 Mitwirkenden. Sie können unbegrenzt viele private, interne und öffentliche Repositories auf Ihrem eigenen Server haben. Es handelt sich um eine Ruby on Rails-Anwendung, die auf den meisten Unix-Plattformen läuft.

38voto

stigkj Punkte 1409

Wenn es Ihnen nichts ausmacht, sich mit der Befehlszeile zu beschäftigen, Gitolith ist ein absoluter Leckerbissen, wenn Sie in einer Unternehmensumgebung arbeiten, in der Sie unterschiedliche Zugriffsrechte für verschiedene Repositories festlegen müssen. Es ist sozusagen eine neuere Version des von @Chris erwähnten Gitosis.

Hier ist die Zusammenfassung von der Website des Autors:

Mit Gitolite können Sie einen einzigen Benutzer auf einem Server verwenden, um viele Git-Repositories zu hosten und vielen Entwicklern Zugriff zu gewähren, ohne ihnen echte Benutzerkennungen oder Shell-Zugriff auf den Server geben zu müssen. Die wesentliche Magie dabei ist der pubkey-Zugang von ssh und die authorized_keys-Datei, und die Inspiration war ein älteres Programm namens gitosis.

Gitolite kann einschränken, wer aus einem Repository lesen (clone/fetch) oder in ein Repository schreiben (push) darf. Es kann auch einschränken, wer zu welchem Zweig oder Tag pushen darf, was in einer Unternehmensumgebung sehr wichtig ist. Gitolite kann installiert werden, ohne dass Root-Rechte erforderlich sind, und benötigt außer Git selbst und Perl keine weitere Software.

Es verfügt über einen recht umfangreichen Funktionsumfang, aber eine Sache, die mir sehr gut gefällt, ist die Tatsache, dass die gesamte alltägliche Konfigurationsbearbeitung über ein spezielles Git-Repository erfolgt. Das heißt, das Hinzufügen eines Benutzers ist einfach

  • Benutzer zur Konfigurationsdatei hinzufügen
  • Den ssh-Schlüssel des Benutzers hinzufügen
  • Bestätigen Sie die Änderung
  • Schieben Sie es auf Gitolith
  • Voilà, die Konfiguration ist live!

Und wenn Sie sich den Code im Browser ansehen möchten, unterstützt gitolite die Synchronisierung der Konfiguration mit gitweb. Oder wenn Sie mögen cgit , ein sehr gutes Web-Frontend für Git, das in C geschrieben ist, besser, dann sollten Sie sich diese Anleitung .

24voto

James Moger Punkte 1701

Sie könnten Folgendes in Betracht ziehen Gitblit ein integrierter Open-Source-Java-Git-Server, Viewer und Repository-Manager für kleine Arbeitsgruppen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X