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
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
$ 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.
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 /
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/
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.
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).
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/