Git Clone из другого каталога


156

Я пытаюсь клонировать репо из другого каталога.

Допустим, у меня есть один репо C:/folder1иC:/folder2

Я хочу , чтобы клонировать работу folder1в folder2.

Что бы я набрал в командной строке, чтобы сделать это?

Кажется, что часто при клонировании предоставляется URL, а не путь к файлу, однако в данный момент я просто практикуюсь и пытаюсь привыкнуть к Git.


4
Вы можете использовать git clone C:\folder1\.git folder2. Вам нужно запустить его из каталога, в котором вы хотите, чтобы folder2 появился
Akash Agrawal

Если вы находитесь в Windows, но она все еще не работает, вам может понадобиться добавить `file: \` к пути к репозиторию. Посмотреть это stackoverflow.com/questions/37422428/…
Jacob H

Ответы:


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

Из документации дляgit clone :

Для локальных репозиториев, также изначально поддерживаемых git, могут использоваться следующие синтаксисы:

/path/to/repo.git/

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

Эти два синтаксиса в основном эквивалентны, за исключением того, что в первом подразумевается опция --local.


4
@grahamesd, на самом деле вам не нужно отображать сетевую папку как диск, потому что GIT может клонировать ее довольно хорошо таким образом:git clone //pc_name/git
vladimir_ki

18

Ничто из этого не помогло мне. Я использую Git-Bash на Windows. Обнаружил, что проблема была с моим форматированием пути к файлу.

НЕПРАВИЛЬНО:

git clone F:\DEV\MY_REPO\.git

ВЕРНЫЙ:

git clone /F/DEV/MY_REPO/.git

Эти команды выполняются из папки, в которой вы хотите, чтобы папка репо появлялась.


В bash работает следующая команда: git clone F: \ DEV \ MY_REPO
M.Hassan

Для git-bash вы можете использовать либо обратную косую черту, /либо двойную косую черту `\\`. Но без единой косой черты.
Элад Вайс

15

Стоит отметить, что команда работает аналогично в Linux:

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

7

Это так просто, как кажется.

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

Если на вашем пути есть место, заключите его в двойные кавычки:

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

3

использование 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

Я использую git-bash в Windows. Самый простой способ - изменить адрес пути, чтобы иметь прямую косую черту:

git clone C:/Dev/proposed 

PS: Запустите git-bash в папке назначения.

Путь, используемый в клоне ---> c: / Dev / предлагаем

Исходный путь в Windows ---> C: \ Dev \ предлагаемый


0

Использование самого пути не сработало для меня.

Вот что наконец-то сработало для меня на MacOS:

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

Это также сработало:

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

Сам путь работал, если я сделал это:

git clone --local myawesomerepo myawesomerepocopy

Да, пример OP - Windows, но вопрос не помечен Windows, поэтому я написал в надежде помочь пользователям Mac
Крис Ларсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.