Richten Sie einen Git-Server mit msysgit unter Windows ein [geschlossen]

163

Meine Freunde und ich versuchen, Git für Windows mithilfe des Tutorials Git Server: Gitosis und Cygwin unter Windows einzurichten , aber wir haben immer wieder Probleme.

Wie würde ein "Setup Git Server" -Handbuch für Windows mit msysgit aussehen?

Im obigen Tutorial gibt es einen Kommentar, der darauf hinweist, dass dies mit msysgit nicht möglich ist, da für die Gitose ein SSH-Server und Bash erforderlich sind. Was ist eine Schritt-für-Schritt-Anleitung (da keine verfügbar ist)?

  1. Installieren Sie mysisgit

  2. ?

Kara
quelle
* Git für Windows-Entwickler . 3 Teile, dies ist ein Link zum ersten. Gut! * Eine illustrierte Anleitung zu Git unter Windows * Git-Erweiterungen (Videos)
Rook
Ich habe das Tool auf windowsgit.com verwendet, wie es Computer Linguist vorgeschlagen hat, nachdem ich die oben genannten Methoden ausprobiert hatte (und fehlgeschlagen war). Es war lächerlich einfach und hat einfach funktioniert. Lohnt sich die 9 $, IMO.
Edward Anderson
Sie können Git Candy ausprobieren, eine Git-Plattform, die auf ASP.NET MVC basiert. Quelle auf: github.com/Aimeast/GitCandy , Demo auf: git.53wb.com
Aimeast

Antworten:

79

Ich habe diesen Beitrag gefunden und gerade etwas in meinem Blog gepostet, das helfen könnte.

Siehe Einrichten eines Msysgit-Servers mit copSSH unter Windows . Es ist lang, aber ich habe es erfolgreich unter Windows 7 Ultimate x64 zum Laufen gebracht.

Tim
quelle
5
Für die Aufzeichnung müssen Sie, soweit ich das beurteilen kann, unter Punkt 5.5 in Tims Anweisungen den zusätzlichen Befehl VOR dem # einfügen, nicht danach (andernfalls bleibt er auskommentiert).
Benjol
1
Sie können einen Blick auf windowsgit.com werfen .
Lilith River
6
Beachten Sie, dass Copssh nicht auf sourceforge bereitgestellt wird und ab 2012 Apr.
TiansHUo
2
@ Tim, kannst du den Inhalt deines Blogposts hier erneut veröffentlichen? Wenn Ihr Blog offline geschaltet wird, wird diese Antwort unbrauchbar.
Seestern
1
@Starfish - Dafür ist web.archive.org da! Hier ist Tims Artikel dort: web.archive.org/web/20100207010332/http://www.timdavis.com.au/…
alldayremix
27

Bonobo Git Server für Windows

Von der Bonobo Git Server-Webseite :

Bonobo Git Server für Windows ist eine Webanwendung, die Sie auf Ihrem IIS installieren und einfach verwalten und mit Ihren Git-Repositorys verbinden können.

Bonobo Git Server ist ein Open-Source-Projekt und Sie können die Quelle auf github finden .

Eigenschaften:

  • Sicherer und anonymer Zugriff auf Ihre Git-Repositories
  • Benutzerfreundliche Weboberfläche für die Verwaltung
  • Benutzer- und teambasierte Repository-Zugriffsverwaltung
  • Repository-Dateibrowser
  • Browser festschreiben
  • Lokalisierung

Brad Kingsley hat ein nettes Tutorial zum Installieren und Konfigurieren von Bonobo Git Server.

GitStack

Git Stack ist eine weitere Option. Hier ist eine Beschreibung von ihrer Website:

GitStack ist eine Software, mit der Sie Ihren eigenen privaten Git-Server für Windows einrichten können. Dies bedeutet, dass Sie ein führendes Versionsverwaltungssystem ohne vorherige Git-Kenntnisse erstellen. GitStack macht es auch super einfach, Ihren Server zu sichern und auf dem neuesten Stand zu halten. GitStack basiert auf dem echten Git für Windows und ist mit allen anderen Git-Clients kompatibel. GitStack ist für kleine Teams völlig kostenlos 1 .

1 Die Basisversion ist für bis zu 2 Benutzer kostenlos

Daniel
quelle
1
GitStack ist nur für bis zu 5 Benutzer kostenlos. Sobald Sie dieses Limit überschritten haben, können Sie die Preise pro Jahr basierend auf der Anzahl der Benutzer festlegen. Siehe Preis Seite auf der GitStack Website.
Simon Tewsi
2
Beachten Sie, dass der ursprüngliche Entwickler von Bonobo Git Server, Jakub Chodounský, in einem Forumsbeitrag am 1. Januar 2012 erklärt, dass er das Projekt nicht mehr unterstützen kann.
Simon Tewsi
2
GitStack ist jetzt nur für bis zu 2 Benutzer kostenlos.
M4N
2
Bonobo ist wieder ein Projekt aktiv.
Tomas Kubes
2
Denken Sie daran, IIS> WWW-Dienste> Anwendungsentwicklungsfunktionen> ASP.NET 4.5 zu aktivieren. Bonobo hat für mich gearbeitet, wo GitStack (der nicht einmal den Mainstream-MSysgit verwenden konnte) nicht, und Bonobo ist Open Source und MIT-lizenziert! Dies bietet eine zufriedenstellende Lösung für Windows, da ich für diesen Zweck lieber einen Unix-Computer verwenden würde.
Will
26

In Bezug auf den Verweis auf die Seite Tim Davis - Einrichten eines Msysgit-Servers mit copSSH unter Windows - habe ich dies verwendet, um einen Git-Server unter Windows 7 Home Premium 64 zum Laufen zu bringen.

Unten ist ein Postmortem / Update von dem, was ich zusätzlich zu seinen Anweisungen gelernt habe.

Wie Tim Davis sagte, war dies zumindest für mich ein mühsamer und frustrierender Prozess - ich bin nicht so gut mit der Integration dieser Art, aber ich habe dabei viel gelernt. Ich hoffe, mein Schmerz kommt in Zukunft jemand anderem zugute, denn dies war ein mühsamer Prozess.

  1. Es gibt einen Schritt, um alle ausführbaren Git-Dateien in Ihr CopSsh-Bin-Verzeichnis zu kopieren. Anstatt Dateien zu kopieren und herauszufinden, welche Dateien benötigt werden, fügen Sie den Git-Bin-Pfad zu Ihrem Git-Pfad hinzu. Dazu habe ich mein .bashrc- und CopSsh-Profil geändert.

    Folgendes habe ich zu .bashrc hinzugefügt (in Ihrem CopSsh- und Windows-Ausgangsverzeichnis):

    gitpath = '/ cygdrive / c / Programme (x86) / Git / bin'

    gitcorepath = 'cygdrive / c / Programme (x86) / Git / libexec / git-core'

    PATH = $ {gitpath}: $ {gitcorepath}: $ {PATH}

    Folgendes habe ich dem Bash-Profil hinzugefügt (in CopSsh usw. / Profil):

    gitpath = '/ c / Programme (x86) / Git / bin'

    gitcorepath = 'cygdrive / c / Programme (x86) / Git / libexec / git-core'

    export PATH = "/ bin: $ syspath: $ gitpath: $ gitcorepath: $ winpath"

    Hier gibt es einige Überschneidungen - es funktioniert für mich, also läutet jemand, an dem der richtige Ort ist, um den Pfad zu ändern.

  2. Die neueren msysgit-Versionen bieten Ihnen möglicherweise nicht den Bildschirm, um die ausführbare ssh-Datei auszuwählen, in der Sie zwischen Git ssh und PuTTY ssh wählen. Sie müssen GIT_SSH manuell einstellen, wenn Sie PuTTY verwenden.

  3. Ich habe keinen Teil der Anweisungen befolgt und das war die Installation von Tortoise - ich habe stattdessen die Befehlszeile verwendet, da ich so lieber einen VCS wie mit RCS und Subversion lerne und finde, dass das für mich funktioniert. Ich hatte Probleme mit dem Klonbefehl mit ssh. So habe ich es gemacht:

    Git-Klon mit ssh - Repository kann nicht gefunden werden

    Hier habe ich am meisten mit dem Kopf geschlagen.

  4. Das CopSsh-Installationsverzeichnis war / Program Files (x86) / ICW. Ich bin damit durchgekommen, aber wenn ich es noch einmal machen würde, würde ich einen Verzeichnisnamen ohne Leerzeichen verwenden.

  5. Diese anderen Quellen haben mir geholfen, die Dinge herauszufinden:

    Eine andere Möglichkeit, einen Git-Server unter Windows einzurichten:

    http://code.google.com/p/tortoisegit/wiki/HOWTO_CentralServerWindowsXP

    Die Client-Seite der Dinge:

    http://toolmantim.com/ Thoughts/setting_up_a_new_remote_git_repository

    Eine Erklärung von Git als Server (nicht mit Windows verbunden, aber ausführlicher als Installationsschritte):

    http://progit.org/book/ch4-0.html

    Plus O'Reillys Versionskontrolle mit Git - das Kapitel Remote Repositories.

Wenn ich im Nachhinein gewusst hätte, wie zeitaufwändig dies sein würde, hätte ich vielleicht mit Mercurial angefangen, da das Lesen der Installation unter Windows einfacher ist, aber ich werde eine Meinung dazu haben, nachdem ich eine Weile mit Git gearbeitet und dann Mercurial ausprobiert habe .

Steve
quelle
Ich habe Probleme mit dem CopSSH-Schritt. Der Link zu CopSSH ist nicht mehr vorhanden ... Ich werde zu sourceforge.net/projects/sereds/files geleitet, wo ich anstelle des CopSSH-Installationsprogramms nur cwRsync_4.0.4_Installer.zip herunterladen kann. Irgendwelche Vorschläge?
user5243421
Dies ist der Link, den ich verwendet habe: itefix.no/i2/node/27
Steve
1
Seit November 2011 ist Copssh eine kommerzielle Lösung. Version 3.0.3 wird frei verfügbar gemacht.
Mateuscb
20

Ich bin nicht sicher, warum jemand http://gitblit.com nicht vorgeschlagen hat . Reine Java-basierte Lösung, HTTP-Protokoll möglich und sehr einfach einzurichten.

Pritesh Patel
quelle
Vielen Dank für die Abstimmung. Können Sie einen Grund angeben, warum Sie über diesen Kommentar nicht abstimmen? Bitte sei Fahrpreis.
Pritesh Patel
Fantastisches Projekt, machte meinen Tag, danke.
Anderson Fortaleza
16

Nachdem ich Tim Davis 'Leitfaden und Steves Follow-up befolgt habe, habe ich Folgendes getan:

Server-PC

  1. Installieren Sie CopSSH, msysgit.
  2. Deaktivieren Sie beim Erstellen des CopSSH-Benutzers die Option Kennwortauthentifizierung und aktivieren Sie die Authentifizierung mit öffentlichem Schlüssel, damit Ihre öffentlichen / privaten Schlüssel funktionieren.
  3. Erstellen Sie öffentliche / private Schlüssel mit PuTTygen. Legen Sie beide Schlüssel im Verzeichnis CopSSH / home / user / .ssh des Benutzers ab.
  4. Fügen Sie der CopSSH / home / user / .bashrc-Datei des Benutzers Folgendes hinzu:

    GITPATH='/cygdrive/c/Program Files (x86)/Git/bin'
    GITCOREPATH='/cygdrive/c/Program Files (x86)/Git/libexec/git-core'
    PATH=${GITPATH}:${GITCOREPATH}:${PATH}
    
  5. Öffnen Sie Git Bash und erstellen Sie ein Repository an einer beliebigen Stelle auf Ihrem PC:

    $ git --bare init repo.git
    Initialized empty Git repository in C:/repopath/repo.git/
    

Client-PC

  1. Installieren Sie msysgit.
  2. Verwenden Sie den privaten Schlüssel, den Sie auf dem Server erstellt haben, um Ihr Repo von ssh: // user @ server: port / repopath / repo.git zu klonen (aus irgendeinem Grund ist das Stammverzeichnis das Laufwerk C :).

Dadurch konnte ich erfolgreich klonen und festschreiben, aber ich konnte nicht auf das bloße Repo auf dem Server pushen. Ich bekam immer:

git: '/repopath/repo.git' is not a git command. See 'git --help'.
fatal: The remote end hung up unexpectedly

Dies führte mich zu Ruis Trace und Lösung, die darin bestand, die folgenden Zeilen zu .gitconfig im % USERPROFILE% -Pfad Ihres Client-PCs (C: \ Users \ UserName) zu erstellen oder hinzuzufügen .

[remote "origin"]
    receivepack = git receive-pack

Ich bin mir nicht sicher, warum dies erforderlich ist. Wenn jemand einen Einblick gewähren könnte, wäre dies hilfreich.

Meine Git-Version ist 1.7.3.1.msysgit.0

timc
quelle
8

GitStack sollte Ihr Ziel erreichen. Ich habe ein Assistenten-Setup. Es ist kostenlos für 2 Benutzer und verfügt über eine webbasierte Benutzeroberfläche. Es basiert auf msysgit.

poiuytrez
quelle
1
Preise von der GitStack-Website: Kostenlos für bis zu 5 Benutzer, 299 USD / Jahr für 6-10 Benutzer, 499 USD / Jahr für 11-25 Benutzer usw. Bis zu 2999 USD / Jahr für 500 Benutzer.
Simon Tewsi
1
GitStack ist jetzt nur für bis zu 2 Benutzer kostenlos.
M4N
Also 1 Benutzer für den Server, 1 Benutzer für den Client, der den Server besucht. Diese Grenze ist zu streng. Ein Team von 2 Entwicklern ist in der realen Welt zu klein.
ZhaoGang
7

Es gibt einen schönen Open-Source-Git-Stack namens Git Blit. Es ist für verschiedene Plattformen und in verschiedenen Paketen erhältlich. Sie können es auch problemlos auf Ihrem vorhandenen Tomcat oder einem anderen Servlet-Container bereitstellen. Schauen Sie sich auf Setup - git - Server auf Windows in wenigen Klicks Tutorial , um weitere Informationen, wird es dauert etwa 10 Minuten Basis - Setup zu bekommen.

Ruslan Platonov
quelle
Lief wie am Schnürchen. Tausend Dank.
AndroidDev
Willkommen, ich bin froh, dass dies hilfreich war
Ruslan Platonov
Dies ist eine gute Wahl. einfach für mich zu bedienen. Hat kein Remote-Git-Commit getestet, aber ich nehme an, es wird funktionieren. Übrigens ist der Link nicht mehr verfügbar.
ZhaoGang
Der Link existiert nicht mehr.
Shihe Zhang
3

Sie benötigen kein SSH, um Git zu teilen. Wenn Sie sich in einem LAN oder VPN befinden, können Sie ein Git-Projekt als freigegebenen Ordner exportieren und auf einem Remotecomputer bereitstellen. Konfigurieren Sie dann das Remote-Repo mithilfe von "file: //" - URLs anstelle von "git @" - URLs. Dauert alle 30 Sekunden. Getan!

Jon Watte
quelle
2

Es kann einfach keinen solchen Leitfaden geben. Wenn ja, haben Sie vielleicht nicht viel Glück, jemanden davon zu überzeugen, einen zu schreiben, denn es wäre eine Menge Arbeit.

Ich würde eines von zwei Dingen empfehlen. Am einfachsten ist es, der Anleitung zu folgen, die Sie sklavisch haben, was bedeutet, dass Sie msysgit vergessen.

Am schwierigsten ist es, einen Linux-Server einzurichten - vielleicht als Gast unter Windows mit VirtualBox (kostenlos) oder VMWare oder Parallels (kostenpflichtig) - und dann einer der vielen Anweisungen zu folgen, zu denen Google Sie führt. Aber Sie werden wahrscheinlich feststellen, dass diese Anweisungen nicht ausreichen - normalerweise wird davon ausgegangen, dass Sie beispielsweise bereits einen SSH-Server eingerichtet haben, sodass Sie diese Informationen an anderer Stelle abrufen müssen. Ich habe das zweimal gemacht und kann sagen, dass es ein Kampf sein wird, wenn Sie nicht schon so etwas wie ein Linux-Guru sind.

Bob Murphy
quelle
1

Ich habe getan, was Bob Murphy als "harte" Option vorgeschlagen hat.

Ich habe Ubuntu unter VMWare Server (kostenlos) bei der Arbeit installiert und dann diese Anleitung zum Einrichten von Gitosis befolgt. Ich fand es viel einfacher als zu versuchen, es unter Windows zum Laufen zu bringen. Sobald es eingerichtet ist, müssen Sie es wirklich nicht mehr berühren, da die Gitosis-Verwaltung von Windows aus erfolgen kann, indem aktualisierte Versionen der Datei gitosis.conf übertragen werden. Alle Arbeiten, die ich direkt auf dem Server ausführen muss, werden über PuTTY ausgeführt, sodass ich die schreckliche VMWare Server-Schnittstelle nicht verwenden muss.

Ich habe kürzlich zu Hause mit VirtualBox herumgespielt und fand es viel schöner / einfacher, damit zu arbeiten als mit VMWare Server. Es lohnt sich also, sich das anzuschauen.

Jacob Stanley
quelle
1

Ich wollte nur meine Erfahrungen mit dem PATH- Setup hinzufügen , das Steve und Timc oben erwähnt haben: Ich habe Berechtigungsprobleme mit Shell-Tools (wie mv und cp ), bei denen die ausführbaren Shell-Dateien von Git zuerst im Pfad stehen.

Das Anhängen nach dem vorhandenen PFAD löste meine Probleme. Beispiel:

GITPATH='/cygdrive/c/Program Files (x86)/Git/bin' GITCOREPATH='/cygdrive/c/Program Files (x86)/Git/libexec/git-core' PATH=${PATH}:${GITPATH}:${GITCOREPATH}

Ich denke, CopSSH passt nicht gut zu allen ausführbaren Shell-Dateien von msysgit ...

kjellander
quelle
0

Ich verwende GitWebAccess seit einem halben Jahr für viele Projekte und es hat sich als das Beste erwiesen, was ich versucht habe. Es scheint jedoch, dass in letzter Zeit Quellen nicht unterstützt werden. Nehmen Sie also nicht die neuesten Binärdateien / Quellen. Derzeit sind sie kaputt :(

Sie können aus dieser Version erstellen oder kompilierte Binärdateien herunterladen, die ich hier verwende .

Ivan Danilov
quelle