git clone z innego katalogu

156

Próbuję sklonować repozytorium z innego katalogu.

Powiedzmy, że mam jedno repozytorium w C:/folder1iC:/folder2

Chcę sklonować pracę folder1do folder2.

Co powinienem wpisać w wierszu polecenia, aby to zrobić?

Wydaje się, że często przy klonowaniu podawany jest adres URL, a nie ścieżka do pliku, jednak w tej chwili po prostu ćwiczę i próbuję przyzwyczaić się do Gita.

SeekingAlpha
źródło
4
możesz użyć git clone C:\folder1\.git folder2. Musisz go uruchomić z katalogu, w którym ma się pojawić folder2
Akash Agrawal
Jeśli jesteś w systemie Windows i nadal nie działa, może być konieczne dodanie przedrostka `file: \` do ścieżki repozytorium. Zobacz ten stackoverflow.com/questions/37422428/…
Jacob H

Odpowiedzi:

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

Z dokumentacji dlagit clone :

W przypadku repozytoriów lokalnych, również obsługiwanych natywnie przez git, można użyć następujących składni:

/path/to/repo.git/

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

Te dwie składnie są w większości równoważne, z wyjątkiem pierwszej implikuje opcję --local.

Chris
źródło
4
@grahamesd, naprawdę nie musisz mapować folderu sieciowego jako dysku, ponieważ GIT może sklonować go całkiem dobrze w taki sposób:git clone //pc_name/git
vladimir_ki
18

Żaden z nich nie działał dla mnie. Używam git-bash w systemie Windows. Okazało się, że problem dotyczy formatowania mojej ścieżki pliku.

ŹLE:

git clone F:\DEV\MY_REPO\.git

POPRAWNY:

git clone /F/DEV/MY_REPO/.git

Te polecenia są wykonywane z folderu, w którym ma się pojawić folder repozytorium.

JMI MADISON
źródło
Następujące polecenie działa w bash: git clone F: \ DEV \ MY_REPO
M.Hassan
W przypadku git-bash możesz użyć odwrotnego ukośnika /lub podwójnego ukośnika `\\`. Ale bez jednego cięcia.
Elad Weiss
15

Warto wspomnieć, że polecenie działa podobnie na Linuksie:

git clone path/to/source/folder path/to/destination/folder
Yasir Jan
źródło
7

To takie proste, na jakie wygląda.

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 #)$ 
Andreas Wederbrand
źródło
7

Jeśli masz miejsce na swojej ścieżce, zawiń je w podwójne cudzysłowy:

$ git clone "//serverName/New Folder/Target" f1/
Yar
źródło
3

Posługiwać się 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.
Krwawiące palce
źródło
0

Używam git-bash w oknach Najprostszym sposobem jest zmiana adresu ścieżki tak, aby zawierały ukośniki:

git clone C:/Dev/proposed 

PS: Uruchom git-bash w folderze docelowym.

Ścieżka używana w klonie ---> c: / Dev /proponowana

Oryginalna ścieżka w systemie Windows ---> c: \ Dev \ zaproponowana

Mahmoud
źródło
0

Samo użycie ścieżki nie zadziałało dla mnie.

Oto, co w końcu zadziałało dla mnie na MacOS:

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

To również zadziałało:

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

Sama ścieżka zadziałała, gdybym to zrobił:

git clone --local myawesomerepo myawesomerepocopy
kris larson
źródło
Tak, przykładem OP jest Windows, ale pytanie nie jest otagowane Windows, więc opublikowałem w nadziei, że pomogę użytkownikom komputerów Mac
kris larson