Frage

Ich habe eine Arbeitskopie Repository, das ich habe in keinem Problem arbeiten; der Ursprung für dieses Repository auf GitHub.

Ich mag meine Arbeitskopie Repository als Ursprung für meinen Build-Rechner (eine VM auf einem anderen physischen Host) machen, so dass ich Kopie machen zu meinem Arbeits verpflichtet kann, ohne dass auf der Build-Maschine gebaut und getestet wird zuerst über GitHub zu gehen. Ich habe bereits ein Build für die GitHub-Repository zu gehen, aber ich möchte dies eine „golden“ Repository sein / bauen; das heißt, wenn etwas da drin geht, soll die Build gegen GitHub garantiert werden passieren.

Ich habe in der Dokumentation zu Git URLs sah, und sehen, dass es die Möglichkeit, eine URL in der Form git://host.xz[:port]/path/to/repo.git/ der Verwendung (siehe zB git-Klon Dokumentation ). Ich möchte dies auf möglichst einfache Art und Weise zu tun, mit einem Minimum an Konfiguration: Ich mag nicht nur einen SSH-Daemon oder Web-Server haben, einzurichten diese Maschine zu meinem Build zu veröffentlichen.

Ich bin mit Windows 7 x64 RC, ich habe msysGit und TortoiseGit installiert, und ich habe Git Standard-Port (9814) auf der Firewall geöffnet. Gehen Sie davon aus Arbeitskopie Repo bei D:\Visual Studio Projects\MyGitRepo ist, und der Hostname ist devbox. Der Build-Rechner ist Windows Server 2008 x64. Ich habe auf der Build-Maschine den folgenden Befehl versucht, mit dem zugehörigen Ausgang:

D:\Integration>git clone "git://devbox/D:\Visual Studio Projects\MyGitRepo"
Initialized empty Git repository in D:/Integration/MyGitRepo/.git/
devbox[0: 192.168.0.2]: errno=No error
fatal: unable to connect a socket (No error)

Bin ich etwas fehlt?

War es hilfreich?

Lösung

Fünf Möglichkeiten gibt es ein Repository für Pull einzurichten aus:

  • lokales Dateisystem : git clone /path/to/repo oder git clone file://path/to/repo. Am wenigsten Arbeit, wenn Sie Dateisystem vernetzen, aber nicht sehr effiziente Nutzung des Netzes. (Dies ist fast genau Lösung von Joakim Elofsson vorgeschlagen)
  • HTTP-Protokolle : git clone http://example.com/repo. Sie müssen jeder Web-Server, und Sie müssen auch (vielleicht automatisch von einem Haken,) laufen git-update-server-info zu helfen generieren Informationen, die für das Abrufen / Ziehen über „dumme“ Protokolle.
  • SSH : git clone ssh://example.com/srv/git/repo oder git clone example.com:/srv/git/repo. Sie müssen Setup SSH-Server (SSH-Daemon) und haben SSH auf dem Client installiert ist (zum Beispiel PuTTY auf MS Windows).
  • git Protokoll : git clone git://example.com/repo. Sie müssen git-daemon auf dem Server; siehe Dokumentation zu (Sie können es als Standalone-Prozess laufen nur für das Abrufen, nicht notwendig, läuft als Dienst). git-Daemon ist ein Teil von git.
  • Bündel : Sie Bündel auf dem Server erzeugen mit git-Bündel Befehl, übertragen sie in irgendeiner Weise zu einem Client-Rechner (auch über USB) und Klon mit git clone file.bndl (wenn Klon nicht funktioniert, können Sie mit "git init", "git remote add" und "git holen") tun.

Was Sie in Ihrem Beispiel fehlen wahrscheinlich läuft git-Daemon auf dem Server. Das, oder Fehlkonfiguration git-daemon.

Leider kann ich Ihnen nicht mit fliessendem git-Daemon als Dienst auf MS Windows helfen. Es gibt nichts in der Ankündigung zur letzten Version von msysGit über Git-Daemon nicht funktioniert, though.

Andere Tipps

Neben Jakub Narębski der Antworten gibt es anotherway, mehr in-line mit Ihrer ursprünglichen Frage. Sie könnten von Github klonen, wie Sie in der Regel tun, dann, wenn Sie eine einmalige ziehen von Ihrem lokalen Repo durchführen möchten, gerade dies tun:

git pull /path/to/repo master

(statt Master können Sie einen beliebigen Zweig Namen setzen.)

Die SSH-Route funktioniert gut funktioniert, aber ein Remote-SSH-Server benötigen. Wenn Sie Windows-Plattform haben dann Cygwin einen funktionierenden SSH-Server bereitstellt, die mit Git funktioniert, aber manuell Git aktualisieren, wenn mit Cygwin Git (Ich schrieb ein paar Hinweise auf http://alecthegeek.wordpress.com/2009/01/21/top-tip-upgrade-git-on-cygwin/ ).

ich einen meiner git Projekte vor kurzem geändert selbst mit Sitecopy zu einem HTTP-Server zu replizieren die tatsächlichen Datei-Uploads zu tun.

Es ist ziemlich einfach, nur git update-server-info dann mit dem .git Verzeichnis spiegelt bis zu einem gewissen http zugänglichen Verzeichnis auf Ihrem Server. Früher habe ich 'project.git', was ziemlich häufig ist.

Git ziehen von http: // site / Projekt-git wie ein Weltmeister arbeitet, und ich don‘ t müssen alles auf dem Server außer den FTP-Zugang haben, obwohl Sitecopy webdav unterstützt auch.

ich nicht empfehlen Sitecopy verwenden, aber, wie es mehrere Maschinen hält nicht gut synchronisiert. Für mein Projekt ist die HTTP-Repository Nur-Lese-und Gold-Updates kommt aus nur einer Maschine, so funktioniert es gut genug.

Wenn Sie einen Pfad wie

C:\Project\

und du hast git init bereits, so dass Sie auch einen Ordner

C:\Project\.git\

Sie jetzt ein neuer Ordner machen

C:\.git\

Gehen Sie in diesem Ordner und führen Sie git clone --bare ..\Project ( nackte ist wichtig), Frankreich gehen Sie zurück zu Ihrem C:\Project\ Ordner und machen Sie einen git remote add-url local ..\.git\Project.
Jetzt nur Sie tun git add -A, git commit -m "HelloWorld" und git push local master.

Sie können den Project Ordner freigeben, schließen Sie es Z: git clone Z:\Project und zu tun - Sie können jetzt git pull origin master und git push origin master Push / Pull-Änderungen von einem Computer auf einen anderen

.

Wenn Ihr Remote-Host in der gleichen Windows-Netzwerk ist, das heißt Sie es als \ entfernter_host zugreifen können, dann können Sie Netzwerk-Laufwerk im Explorer Karte, sagen wir z: -> \ entfernter_host \ repodir, danach können Sie 'git clone / z / myproject' zu klonen Projekt

verwenden
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top