GIT clone repo dans le système de fichiers local de windows

je suis un Noob complet quand il s'agit de GIT. J'ai été juste de prendre mes premiers pas au cours de la dernière quelques jours. J'ai mis en place un repo sur mon ordinateur portable, j'ai démonté le tronc d'un projet SVN (j'ai eu quelques problèmes avec les branches, Je ne les ai pas fait fonctionner), mais tout semble ok là-bas.

je veux maintenant être en mesure de tirer ou de pousser à partir de l'ordinateur portable à mon bureau principal. La raison étant l'ordinateur portable est pratique dans le train que je passe 2 heures par jour à voyager et peut obtenir un bon travail fait. Mais ma machine principale à la maison est idéal pour le développement. Donc, je veux être en mesure de pousser / tirer de l'ordinateur portable à l'ordinateur principal quand je rentre à la maison. J'ai pensé que la façon la plus simple de faire cela serait de simplement avoir le dossier de code partagé à travers le LAN et faire:

git clone file://192.168.10.51/code

malheureusement, cela ne semble pas fonctionner pour moi:

donc j'ouvre un git bash cmd et je tape la commande ci-dessus, je suis dans C:code (le dossier partagé pour les deux machines) ce que j'obtiens en retour:

Initialized empty Git repository in C:/code/code/.git/
fatal: 'C:/Program Files (x86)/Git/code' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Comment puis-je partager le dépôt entre les deux machines de la manière la plus simple.

il y aura d'autres endroits qui seront des points de stockage officiels et des endroits où les autres devs et serveur de CI etc vont tirer, c'est juste pour que je puisse travailler sur le même repo à travers deux machines.

selon la suggestion de Sebastian, j'obtiens ce qui suit:

C:code>git clone --no-hardlinks file://192.168.10.51/code
Initialized empty Git repository in C:/code/code/.git/
fatal: 'C:/Program Files (x86)/Git/code' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

** EDIT-ANSWER * *

merci à tout ce qui a aidé. J'ai essayé le mapping a drive et ça a marché alors j'ai pensé revenir en arrière et réessayer sans mapping. Le résultat final a été:

git clone file://\192.168.0.51code

ça a bien marché.

Merci

193
demandé sur raam86 2010-03-26 01:34:47

7 réponses

vous pouvez spécifier l'URL de la télécommande en appliquant le chemin UNC au Protocole du fichier. Pour ce faire, vous devez utiliser quatre barres obliques:

git clone file:////<host>/<share>/<path>

par exemple, si votre machine principale a L'IP 192.168.10.51 et le nom de l'ordinateur main , et qu'elle a une part appelée code qui est elle-même un dépôt git, alors les deux commandes suivantes devraient fonctionner également:

git clone file:////main/code
git clone file:////192.168.10.51/code

Si le dépôt Git est dans un sous-répertoire, ajoutez simplement le chemin:

git clone file:////main/code/project-repository
git clone file:////192.168.10.51/code/project-repository
175
répondu poke 2014-11-15 22:20:27
$ git clone --no-hardlinks /path/to/repo

la commande ci-dessus utilise la notation de chemin POSIX pour le répertoire avec votre dépôt git. Pour Windows, il est (Répertoire C:/path/to/repo contient .git répertoire):

C:\some\dir\> git clone --local file:///C:/path/to/repo my_project

le dépôt sera cloné en C:\some\dir\my_project . Si vous omettez file:/// partie --local est implicite.

117
répondu jfs 2010-03-25 23:37:22

la réponse avec le nom d'hôte n'a pas fonctionné pour moi mais cela a fait:

git clone " fichier:////home/git/repositories/MyProject.git /

14
répondu Talaat Safwat 2012-07-09 12:49:46

j'ai réussi à le faire en utilisant file://, mais avec une barre oblique supplémentaire pour indiquer un chemin absolu.

git clone file:///cygdrive/c/path/to/repository/

dans mon cas, J'utilise Git sur Cygwin Pour Windows, ce que vous pouvez voir à cause de la partie /cygdrive/c de mes chemins. Avec quelques retouches sur le chemin, cela devrait fonctionner avec n'importe quelle installation git.

ajouter une télécommande fonctionne de la même manière

git remote add remotename file:///cygdrive/c/path/to/repository/
7
répondu Mark F Guerra 2014-03-19 16:35:01

peut-être cartographier la part comme un lecteur réseau et puis faire

git clone Z:\

la plupart du temps juste une supposition; je fais toujours ce truc en utilisant ssh. Suivre cette suggestion signifie Bien sûr que vous aurez besoin d'avoir ce lecteur mappé chaque fois que vous poussez/tirer vers/à partir de l'ordinateur portable. Je ne sais pas comment vous avez piégé ssh pour travailler sous windows, mais si vous allez faire ça souvent, ça pourrait être intéressant d'enquêter.

6
répondu intuited 2010-03-25 23:02:01

pas sûr que ce soit à cause de ma version git (1.7.2) ou quoi, mais les approches énumérées ci-dessus en utilisant le nom de la machine et les options IP ne fonctionnaient pas pour moi. Un autre détail qui peut/peut ne pas être important est que le repo était un repo simple que j'avais initialisé et poussé à partir d'une machine différente.

j'essayais de cloner project1 comme indiqué ci-dessus avec des commandes comme:

$ git clone file:////<IP_ADDRESS>/home/user/git/project1
Cloning into project1...
fatal: '//<IP_ADDRESS>/home/user/git/project1' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

et

$ git clone file:////<MACHINE_NAME>/home/user/git/project1
Cloning into project1...
fatal: '//<MACHINE_NAME>/home/user/git/project1' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Ce que a fait travailler pour moi était quelque chose de plus simple:

$ git clone ../git/project1
Cloning into project1...
done.

Note-même si le repo à partir duquel on a cloné était nu, cela a produit un clone "normal" avec tous les fichiers code/image/ressource réels que j'espérais (par opposition aux internes du repo git).

3
répondu bargar 2013-08-09 21:30:24

indique soit des trajectoires absolues, soit des trajectoires relatives.

par exemple le PREMIER ci-dessous utilise des chemins absolus:

(c'est de l'intérieur du dossier qui contient le dépôt et la sauvegarde en sous-dossiers. rappelez-vous aussi que le dossier de sauvegarde n'est pas modifié s'il contient déjà quelque chose. et s'il n'est pas présent, un nouveau dossier sera créé )

~/git$ git clone --no-hardlinks ~/git/git_test1/   ~/git/bkp_repos/

les utilisations suivantes chemins relatifs:

~/git$ git clone --no-hardlinks git_test1/   bkp_repos2/
1
répondu sidquanto 2013-09-19 16:59:25