Comment puis-je rendre mon dépôt local disponible pour git pull?
J'ai une copie de travail du dépôt que j'ai travaillé dans pas de problème; l'origine de ce référentiel est sur GitHub.
J'aimerais rendre ma copie de travail du dépôt disponible que sur l'origine de ma machine de compilation (une VM sur un autre serveur physique), de sorte que commet je fais à ma copie de travail peut être construit et testé sur la machine de compilation sans avoir à passer par GitHub premier. J'ai déjà un build pour le dépôt GitHub va, mais j'aimerais que cela soit un "golden" repository/construire; c'est à dire, si quelque chose va là-bas, la construction de la contre GitHub devrait être garanti à passer.
J'ai regardé la documentation sur Git Url, et de voir qu'il y a la possibilité d'utiliser une URL dans le formulaire git://host.xz[:port]/path/to/repo.git/
(voir, par exemple, git-clone de la documentation). Je veux le faire le plus simplement possible, avec le minimum de configuration: je ne veux pas avoir à configurer un serveur SSH web ou le serveur vient de publier la présente à ma machine de compilation.
Je suis sous Windows 7 x64 RC, j'ai MSysGit et TortoiseGit installé, et j'ai ouvert Git du port par défaut (9814) sur le pare-feu. Veuillez prendre copie de travail repo est à D:\Visual Studio Projects\MyGitRepo
, et le nom d'hôte est devbox
. La machine de compilation est Windows Server 2008 x64. J'ai essayé la commande suivante sur la machine de compilation, avec la sortie associés:
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)
Suis-je raté quelque chose?
- Ne pouvez-vous pas juste l'installation d'une action localement, puis faire "git clone \\workmachine\partage" de votre buildmachine? Pas le meilleur/le plus efficace, mais la plupart des chose simple à faire.
Vous devez vous connecter pour publier un commentaire.
Cinq possibilités existent pour mettre en place un dépôt pour les tirer à partir de:
git clone /path/to/repo
ougit clone file://path/to/repo
. Moins de travail si vous avez en réseau du système de fichiers, mais pas très efficace l'utilisation de réseau. (Ce qui est presque exactement la solution proposée par Joakim Elofsson)git clone http://example.com/repo
. Vous avez besoin tout serveur web, et vous devez également exécuter (peut-être automatiquement, à partir d'un crochet) git update-server-info pour générer l'information nécessaire pour l'extraction/tirant par l'intermédiaire de "stupide" protocoles.git clone ssh://example.com/srv/git/repo
ougit clone example.com:/srv/git/repo
. Vous devez configurer un serveur SSH (SSH daemon), et SSH est installé sur le client (par exemple Mastic sur MS Windows).git clone git://example.com/repo
. Vous devez exécuter git-daemon sur le serveur; voir la documentation pour plus de détails (vous pouvez l'exécuter de manière autonome processus que pour aller chercher, pas nécessaire d'exécuter en tant que service). git-daemon est une partie de git.git clone file.bndl
(si clone ne fonctionne pas, vous pouvez le faire "git init", "git remote add" et "git fetch").Ce qui vous manque dans votre exemple est probablement git-daemon sur le serveur. Que, ou misconfiguring git-daemon.
Malheureusement je ne peux vous aider avec l'exécution de la commande git-daemon en tant que service sur MS Windows. Il n'y a rien dans l'annonce de la dernière version de msysGit sur git-daemon ne fonctionne pas, cependant.
En plus de Jakub Narębski réponses, il n'y a anotherway, plus en ligne avec votre question initiale. Vous pourriez cloner à partir de github comme vous le faites habituellement, lorsque vous souhaitez effectuer une traction de votre repo, il suffit de faire ceci:
(au lieu de master, vous pouvez mettre n'importe quel nom de la branche.)
Le ssh itinéraire fonctionne bien mais nécessite un serveur ssh distant. Si vous avez de la plate-forme Windows puis Cygwin fournit un serveur ssh qui fonctionne avec Git, mais manuellement la mise à niveau Git si l'utilisation de Cygwin Git (j'ai écrit quelques notes à http://alecthegeek.wordpress.com/2009/01/21/top-tip-upgrade-git-on-cygwin/).
J'ai récemment changé un de mes projets git pour se répliquer à un serveur HTTP à l'aide de sitecopy pour faire l'upload de fichiers.
C'est assez facile, il suffit d'utiliser
git update-server-info
ensuite le miroir .répertoire git pour certains, accessible par http répertoire sur votre serveur. J'ai utilisé " projet.git, ce qui est assez commun.Git pull de http://site/project-git fonctionne comme un champion, et je n'ai pas à avoir quelque chose sur le serveur à l'exception de l'accès FTP, si sitecopy prend en charge webdav ainsi.
Je ne recommandent pas l'utilisation de sitecopy, cependant, comme il ne sait pas garder plusieurs machines synchronisées bien. Pour mon projet, le HTTP référentiel est en lecture seule, et l'or des mises à jour viennent d'une seule machine, de sorte qu'il fonctionne assez bien.
Si vous avez un chemin comme
et que vous n'avez
git init
déjà, donc, vous avez également un dossierMaintenant vous faire un nouveau dossier
Aller dans ce dossier et exécuter
git clone --bare ..\Project
(nu est important),retournez à votre
C:\Project\
dossier et faire ungit remote add-url local ..\.git\Project
.Maintenant, vous venez de faire
git add -A
,git commit -m "HelloWorld"
etgit push local master
.Vous pouvez partager le
Project
dossier, connectez-vous àZ:
et negit clone Z:\Project
- vous pouvez utiliser maintenantgit pull origin master
etgit push origin master
de pousser/tirer des modifications à partir d'un ordinateur à un autre.Si votre hôte distant est dans le même réseau de windows, c'est à dire que vous pouvez y accéder en tant que \remotehost,
alors vous pouvez mapper un lecteur réseau dans l'explorateur, disons z: --> \remotehost\repodir,
après cela, vous pouvez utiliser git clone /z/myproject " pour cloner projet