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.


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.


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.


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

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 #)$ 

7

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

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

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.

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


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.