Gibt es derzeit eine Möglichkeit, ein freigegebenes Git-Repository in Windows zu hosten? Ich verstehe, dass Sie den Git-Dienst unter Linux konfigurieren können mit:
git daemon
Gibt es eine native Windows-Option zum Freigeben von Ordnern, um einen Git-Dienst zu hosten?
BEARBEITEN: Ich verwende derzeit die Cygwin-Installation von Git, um Git-Repositorys in Windows zu speichern und damit zu arbeiten. Ich möchte jedoch den nächsten Schritt zum Hosten eines Repositorys mit einem Dienst ausführen, der anderen Zugriff gewähren kann.
git daemon
. : \Antworten:
Hier sind einige Schritte, die Sie ausführen können, um den Git-Daemon unter Windows auszuführen:
(Voraussetzungen: Eine Standardinstallation von Cygwin und ein Git-Client, der den Git-Daemon unterstützt.)
Schritt 1 : Öffnen Sie eine Bash-Shell
Schritt 2 : Erstellen Sie im Verzeichnis / cygdrive / c / cygwin64 / usr / local / bin / eine Datei mit dem Namen "gitd" mit folgendem Inhalt:
Schritt 3 : Führen Sie den folgenden Befehl cygrunsrv an einer Eingabeaufforderung mit erhöhten Rechten (dh als Administrator) aus, um das Skript als Dienst zu installieren (Hinweis: Es wird davon ausgegangen, dass Cygwin unter C: \ cygwin64 installiert ist):
Schritt 4 : Führen Sie den folgenden Befehl aus, um den Dienst zu starten:
cygrunsrv --start gitd
Du bist fertig. Wenn Sie es testen möchten, finden Sie hier ein schnelles und schmutziges Skript, das zeigt, dass Sie das Git-Protokoll auf Ihren lokalen Computer übertragen können:
quelle
GitStack könnte Ihre beste Wahl sein. Es ist derzeit kostenlos (für bis zu 2 Benutzer)
undzum Zeitpunkt des SchreibensOpen Source.quelle
Hier ist ein dedizierter Git-Server für Windows: https://github.com/jakubgarfield/Bonobo-Git-Server/wiki
quelle
git update-server-info
) nach dem HTTP-Push nicht und diese Logik wird von ihrer Git-Bibliothek (GitSharp) nicht implementiert. Ich bezweifle, dass es bald einen echten Arbeitszustand erreichen wird.Wenn Sie in einer Windows-Umgebung arbeiten, haben Sie Mercurial in Betracht gezogen ? Es ist ein verteiltes Versionskontrollsystem wie Git, lässt sich jedoch wesentlich besser und einfacher in Windows integrieren.
quelle
Die Installation von CygWin ist ein Overkill. Lesen Sie dieses Tutorial, wie Sie es schneller und nativer machen können:
http://code.google.com/p/tortoisegit/wiki/HOWTO_CentralServerWindowsXP
quelle
Wenn Sie
cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062: The service has not been started.
nach dem Ausführen des Befehls den Fehler erhalten :Das bedeutet, dass Sie den Ordner 'Basispfad' nicht erstellt haben.
Durch Erstellen des Ordners '/ git' und erneutes Ausführen des Befehls wird dies behoben.
quelle
/git
NTFS-Berechtigungen dem Lese- / Schreibzugriff des Dienstkontos (SYSTEM) keinen Zugriff gewähren.Ich verwende derzeit den ssh-Daemon von cygwin unter Windows, um den Dienst bereitzustellen und den Fernzugriff auf mein Repo zu ermöglichen. Es funktioniert ganz gut, ich habe die vollständige Kontrolle darüber, wer über seine SSH-Zertifikate auf mein Repo zugreift, und die Leistung ist selbst über Remote-WAN- und VPN-Verbindungen hervorragend.
Eine andere Lösung ist die Verwendung von Gitosis . Es ist ein Tool, das das Hosting von Repos erheblich vereinfacht.
quelle
Sie müssen keinen Dienst hosten, sondern können auch ein freigegebenes Repository auf einem freigegebenen Laufwerk erstellen. Erstellen Sie einfach ein nacktes Repository. Sie können ein vorhandenes Repo mit "git clone --bare --shared [source] [dest]" in ein freigegebenes Repo klonen. Sie können ein neues Repository auch mit "git init --bare --shared = all" initiieren.
Henk
quelle
Haben Sie darüber nachgedacht, die Cygwin-Schicht zu verwenden? Siehe diesen Link .
quelle
Jetzt unterstützt msysGit den Git-Daemon! Es funktioniert gut (zumindest für mich). Ich werde versuchen, es als Dienst laufen zu lassen ...
quelle
SCM Manager
quelle
Unter Windows können Sie Git-Repositorys mit Apache auch über HTTP oder HTTPS mithilfe der DAV-Erweiterung bereitstellen.
Der Git-Repository-Pfad kann dann durch Apache-Authentifizierungsprüfungen geschützt werden, z. B. durch Beschränkung auf bestimmte IP-Adressen oder Authentifizierung vom Typ htpasswd / htdigest.
Die Einschränkung bei der Verwendung der Authentifizierung htpasswd / htdigest besteht darin, dass der Benutzername: password in der angeforderten Git-URL übergeben wird. Daher ist es besser, den Zugriff auf die Git-URL auf bestimmte IP-Adressen zu beschränken.
Bearbeiten: Beachten Sie, dass Sie das Passwort aus der Git-URL herauslassen können und Git Sie stattdessen beim Drücken und Abrufen / Ziehen zur Eingabe des Passworts auffordert.
Die Verwendung von HTTPS bedeutet, dass alle Daten bei der Übertragung verschlüsselt werden.
Es ist einfach einzurichten und funktioniert.
Das folgende Beispiel zeigt die Kombination aus Zugriffskontrolle nach IP-Adresse und Benutzer: Kennwort über Standard-HTTP.
Beispiel Apache Virtualhost
Beispiel .git / config
quelle
Bei der Arbeit verwende ich GitBlit GO, das auf einem Windows Server installiert ist. Arbeiten Sie einwandfrei und lassen Sie sich für die Benutzerauthentifizierung und -autorisierung gut in ActiveDirectory integrieren. Es ist auch kostenlos und OpenSource (Apache lizenziert)
GitBlit-Homepage
Es wird nur HTTP (S) -Zugriff unterstützt, kein SSH, aber unter Windows sollten Sie nichts mehr benötigen.
quelle
Dies ist eine Antwort von 2015 auf eine Frage, die älter als 7 Jahre ist.
Für eine einmalige Zahlung von 10 US-Dollar kann unter https://bitbucket.org/product/server eine 64-Bit-Windows-Lizenz für bis zu 10 Benutzer erworben werden .
Anscheinend sind 32-Bit-Versionen nur über ihr Archiv verfügbar.
Bitbucket Server war zuvor als Stash bekannt .
Bitte beachten Sie, dass ich diese Version nicht ausprobiert habe, aber 10 US-Dollar scheinen ein gutes Geschäft zu sein. Hier habe ich gelesen, dass Atlassian die 10 Dollar für wohltätige Zwecke gibt. FWIW
quelle
Ich denke, was Henk sagt, ist, dass Sie ein freigegebenes Repository auf einem Laufwerk erstellen und es dann an einen gemeinsamen Speicherort kopieren können, auf den Sie beide Zugriff haben. Wenn es einen Unternehmensserver oder etwas gibt, auf das Sie beide SSH-Zugriff haben, können Sie das Repository an einem Ort ablegen, an dem Sie es wieder auf Ihren eigenen Computer übertragen können, und dann von diesem abrufen. Ich habe das eine Weile für mich getan, da ich zwei Computer habe. Es ist ein Ärger, aber es funktioniert.
quelle
Für Windows 7 x64 und Cygwin 1.7.9 musste ich / usr / bin / gitd als Argument für cygrunsrv verwenden
Außerdem musste ich bash als Administrator ausführen, um den Dienst zu installieren.
quelle