git clone depuis un autre répertoire


156

J'essaye de cloner le repo à partir d'un autre répertoire.

Disons que j'ai un repo C:/folder1etC:/folder2

Je veux cloner le travail folder1dans folder2.

Que dois-je taper dans l'invite de commande pour ce faire?

Il semble que souvent, lors du clonage, une URL soit fournie plutôt qu'un chemin de fichier, cependant, pour le moment, je m'exerce simplement et j'essaie de m'habituer à Git.


4
vous pouvez utiliser git clone C:\folder1\.git folder2. Vous devez l'exécuter à partir du répertoire dans lequel vous voulez que le dossier 2 apparaisse
Akash Agrawal

Si vous êtes dans Windows et que cela ne fonctionne toujours pas, vous devrez peut-être ajouter `file: \` au chemin du référentiel. Voir ce stackoverflow.com/questions/37422428/…
Jacob H

Réponses:


173
cd /d c:\
git clone C:\folder1 folder2

De la documentation pourgit clone :

Pour les référentiels locaux, également pris en charge par git nativement, les syntaxes suivantes peuvent être utilisées:

/path/to/repo.git/

file:///path/to/repo.git/

Ces deux syntaxes sont pour la plupart équivalentes, sauf que la première implique l'option --local.


4
@grahamesd, vraiment vous n'avez pas besoin de mapper un dossier réseau en tant que lecteur car GIT peut le cloner assez bien de cette manière:git clone //pc_name/git
vladimir_ki

18

Aucun de ceux-ci n'a fonctionné pour moi. J'utilise git-bash sur Windows. J'ai découvert que le problème était lié au formatage de mon chemin de fichier.

FAUX:

git clone F:\DEV\MY_REPO\.git

CORRECT:

git clone /F/DEV/MY_REPO/.git

Ces commandes sont effectuées à partir du dossier dans lequel vous souhaitez que le dossier du référentiel apparaisse.


La commande suivante fonctionne dans bash: git clone F: \ DEV \ MY_REPO
M.Hassan

Pour git-bash, vous pouvez utiliser une barre oblique inverse /ou une double barre oblique `\\`. Mais pas de barre oblique unique.
Elad Weiss

15

Il est à noter que la commande fonctionne de la même manière sous Linux:

git clone path/to/source/folder path/to/destination/folder

7

C'est aussi simple que ça en a l'air.

14:27:05 ~$ mkdir gittests
14:27:11 ~$ cd gittests/
14:27:13 ~/gittests$ mkdir localrepo
14:27:20 ~/gittests$ cd localrepo/
14:27:21 ~/gittests/localrepo$ git init
Initialized empty Git repository in /home/andwed/gittests/localrepo/.git/
14:27:22 ~/gittests/localrepo (master #)$ cd ..
14:27:35 ~/gittests$ git clone localrepo copyoflocalrepo
Cloning into 'copyoflocalrepo'...
warning: You appear to have cloned an empty repository.
done.
14:27:42 ~/gittests$ cd copyoflocalrepo/
14:27:46 ~/gittests/copyoflocalrepo (master #)$ git status
On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)
14:27:46 ~/gittests/copyoflocalrepo (master #)$ 

7

Si vous avez de l'espace dans votre chemin, mettez-le entre guillemets:

$ git clone "//serverName/New Folder/Target" f1/

3

Utilisation git clone c:/folder1 c:/folder2

git clone [--template=<template_directory>] [-l] [-s] [--no-hardlinks]
[-q] [-n] [--bare] [--mirror] [-o <name>] [-b <name>] [-u <upload-pack>]
[--reference <repository>] [--separate-git-dir <git dir>] [--depth <depth>]
[--[no-]single-branch] [--recursive|--recurse-submodules] [--]<repository>
[<directory>]


<repository>

    The (possibly remote) repository to clone from.
    See the URLS section below for more information on specifying repositories.
<directory>

    The name of a new directory to clone into.
    The "humanish" part of the source repository is used if no directory 
    is explicitly given (repo for /path/to/repo.git and foo for host.xz:foo/.git).
    Cloning into an existing directory is only allowed if the directory is empty.

0

J'utilise git-bash dans windows.Le moyen le plus simple est de changer l'adresse du chemin pour avoir les barres obliques:

git clone C:/Dev/proposed 

PS: Démarrez le git-bash sur le dossier de destination.

Chemin utilisé dans le clone ---> c: / Dev / proposé

Chemin d'origine dans Windows ---> c: \ Dev \ proposé


0

Utiliser le chemin lui-même n'a pas fonctionné pour moi.

Voici ce qui a finalement fonctionné pour moi sur MacOS:

cd ~/projects
git clone file:///Users/me/projects/myawesomerepo myawesomerepocopy

Cela a également fonctionné:

git clone file://localhost/Users/me/projects/myawesomerepo myawesomerepocopy

Le chemin lui-même fonctionnait si je faisais ceci:

git clone --local myawesomerepo myawesomerepocopy

Oui, l'exemple de l'OP est Windows, mais la question n'est pas étiquetée Windows, j'ai donc posté dans l'espoir d'aider les utilisateurs de Mac
kris larson le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.