Ich habe ein Arbeitskopie-Repository, in dem ich problemlos gearbeitet habe. Der Ursprung für dieses Repository liegt auf GitHub.
Ich möchte mein Arbeitskopie-Repository als Ursprung für meinen Build-Computer (eine VM auf einem anderen physischen Host) verfügbar machen, damit Commits, die ich für meine Arbeitskopie mache, auf dem Build-Computer erstellt und getestet werden können, ohne dass dies erforderlich ist GitHub zuerst. Ich habe bereits einen Build für das GitHub-Repository, aber ich möchte, dass dies ein "goldenes" Repository / Build ist. dh wenn dort etwas rein geht, sollte der Build gegen GitHub garantiert bestanden werden.
Ich habe mir die Dokumentation zu Git-URLs angesehen und festgestellt, dass es eine Option gibt, eine URL im Formular zu verwenden git://host.xz[:port]/path/to/repo.git/
(siehe z. B. Git-Clone-Dokumentation) ). Ich möchte dies auf möglichst einfache Weise mit einem Minimum an Konfiguration tun: Ich möchte keinen SSH-Daemon oder Webserver einrichten müssen, um dies auf meinem Build-Computer zu veröffentlichen.
Ich verwende Windows 7 x64 RC, habe MSysGit und TortoiseGit installiert und den Standardport (9814) von Git in der Firewall geöffnet. Bitte nehmen Sie an, dass sich das Repo für Arbeitskopien bei D:\Visual Studio Projects\MyGitRepo
befindet und der Hostname lautet devbox
. Der Buildcomputer ist Windows Server 2008 x64. Ich habe den folgenden Befehl auf der Build-Maschine mit der zugehörigen Ausgabe versucht:
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)
Vermisse ich etwas
quelle
Antworten:
Es gibt fünf Möglichkeiten, ein Repository zum Abrufen von einzurichten:
git clone /path/to/repo
odergit clone file://path/to/repo
. Am wenigsten Arbeit, wenn Sie ein vernetztes Dateisystem haben, aber das Netzwerk nicht sehr effizient nutzen. (Dies ist fast genau die von Joakim Elofsson vorgeschlagene Lösung )git clone http://example.com/repo
. Sie benötigen einen beliebigen Webserver und müssen git-update-server-info (möglicherweise automatisch von einem Hook aus) ausführen , um Informationen zu generieren, die zum Abrufen / Abrufen über "dumme" Protokolle erforderlich sind.git clone ssh://example.com/srv/git/repo
odergit clone example.com:/srv/git/repo
. Sie müssen den SSH-Server (SSH-Daemon) einrichten und SSH auf dem Client installiert haben (z. B. PuTTY unter MS Windows).git clone git://example.com/repo
. Sie müssen git-daemon auf dem Server ausführen . Weitere Informationen finden Sie in der Dokumentation (Sie können es als eigenständigen Prozess nur zum Abrufen ausführen, nicht als Dienst ausführen). git-daemon ist ein Teil von git.git clone file.bndl
(wenn der Klon nicht funktioniert, können Sie "git init", "git remote add" ausführen "und" git fetch ").Was Sie in Ihrem Beispiel vermissen, ist wahrscheinlich, dass git-daemon auf dem Server ausgeführt wird. Das oder eine falsche Konfiguration des Git-Daemons.
Leider kann ich Ihnen nicht helfen, git-daemon als Dienst unter MS Windows auszuführen. Es gibt jedoch keine Ankündigung für die letzte Version von msysGit, dass der Git-Daemon nicht funktioniert.
quelle
Zusätzlich zu den Antworten von Jakub Narębski gibt es eine andere Möglichkeit, die eher Ihrer ursprünglichen Frage entspricht. Sie können wie gewohnt von Github klonen. Wenn Sie dann einen einmaligen Pull von Ihrem lokalen Repo ausführen möchten, tun Sie einfach Folgendes:
(Anstelle von Master können Sie einen beliebigen Filialnamen eingeben.)
quelle
..
in <path / to / repo> scheint nicht zu funktionieren; Verwenden Sie stattdessen einen vollständigen Pfad.Die SSH-Route funktioniert gut, erfordert jedoch einen Remote-SSH-Server. Wenn Sie über eine Windows-Plattform verfügen, bietet Cygwin einen funktionierenden SSH-Server, der mit Git funktioniert. Bei Verwendung von Cygwin Git wird Git jedoch manuell aktualisiert (ich habe einige Hinweise unter http://alecthegeek.wordpress.com/2009/01/21/top-tip geschrieben) -upgrade-git-on-cygwin / ).
quelle
Ich habe kürzlich eines meiner Git-Projekte so geändert, dass es sich mithilfe von Sitecopy auf einen HTTP-Server repliziert, um die eigentlichen Datei-Uploads durchzuführen.
Es ist ziemlich einfach. Verwenden Sie einfach
git update-server-info
das .git-Verzeichnis und spiegeln Sie es in ein http-zugängliches Verzeichnis auf Ihrem Server. Ich habe 'project.git' verwendet, was ziemlich häufig ist.Git ziehen von http: // site / project-git funktioniert wie ein Champion, und ich muss nichts auf dem Server haben, außer FTP-Zugriff, obwohl Sitecopy auch Webdav unterstützt.
Ich empfehle jedoch nicht, Sitecopy zu verwenden, da dadurch nicht mehrere Computer gut synchronisiert werden. Für mein Projekt ist das HTTP-Repository schreibgeschützt, und Gold-Updates stammen von nur einem Computer, sodass es gut genug funktioniert.
quelle
Wenn Sie einen Pfad wie haben
und du hast es
git init
schon getan , also hast du auch einen OrdnerSie erstellen jetzt einen neuen Ordner
Gehen Sie in diesen Ordner und führen Sie ihn aus
git clone --bare ..\Project
( nackt ist wichtig),kehren Sie zu Ihrem
C:\Project\
Ordner zurück und führen Sie eine ausgit remote add-url local ..\.git\Project
.Jetzt brauchen Sie nur was Sie tun
git add -A
,git commit -m "HelloWorld"
undgit push local master
.Sie können den
Project
Ordner freigeben, eine Verbindung herstellenZ:
und dies tungit clone Z:\Project
- Sie können ihn jetzt verwendengit pull origin master
undgit push origin master
Änderungen von einem Computer auf einen anderen übertragen.quelle
Befindet sich Ihr Remote-Host im selben Windows-Netzwerk, dh Sie können als \ remotehost darauf zugreifen, können Sie das Netzwerklaufwerk im Explorer zuordnen. Sagen wir z: -> \ remotehost \ repodir. Danach können Sie 'git clone / verwenden. z / myproject 'zum Klonen des Projekts
quelle