git clone từ thư mục khác


155

Tôi đang cố gắng sao chép repo từ một thư mục khác.

Hãy nói rằng tôi có một repo trong C:/folder1C:/folder2

Tôi muốn sao chép công việc folder1vào folder2.

Tôi sẽ gõ gì vào dấu nhắc lệnh để làm điều này?

Có vẻ như thông thường khi nhân bản một URL được cung cấp thay vì đường dẫn tệp, tuy nhiên, tại thời điểm này tôi chỉ đang thực hành và cố gắng sử dụng Git.


4
bạn có thể sử dụng git clone C:\folder1\.git folder2. Bạn cần chạy nó từ thư mục mà bạn muốn thư mục2 xuất hiện
Akash Agrawal

Nếu bạn đang ở trong windows và nó vẫn không hoạt động, bạn có thể cần phải thêm `file: \` vào đường dẫn kho lưu trữ. Xem stackoverflow.com/questions/37422428/
Jacob H

Câu trả lời:


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

Từ tài liệu chogit clone :

Đối với các kho lưu trữ cục bộ, cũng được hỗ trợ bởi git tự nhiên, các cú pháp sau có thể được sử dụng:

/path/to/repo.git/

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

Hai cú pháp này hầu hết là tương đương, ngoại trừ tùy chọn - ngụ ý trước đây.


4
@grahamesd, thực sự bạn không cần ánh xạ thư mục mạng dưới dạng ổ đĩa vì GIT có thể sao chép nó khá tốt theo cách như vậy:git clone //pc_name/git
vladimir_ki

18

Không ai trong số này làm việc cho tôi. Tôi đang sử dụng git-bash trên windows. Phát hiện ra vấn đề là với định dạng đường dẫn tệp của tôi.

SAI LẦM:

git clone F:\DEV\MY_REPO\.git

CHÍNH XÁC:

git clone /F/DEV/MY_REPO/.git

Các lệnh này được thực hiện từ thư mục bạn muốn thư mục repo xuất hiện.


Lệnh sau đang hoạt động trong bash: git clone F: \ DEV \ MY_REPO
M.Hassan

Đối với git-bash, bạn có thể sử dụng dấu gạch chéo ngược /hoặc dấu gạch chéo kép `\\`. Nhưng không có dấu gạch chéo.
Elad Weiss

15

Điều đáng nói là lệnh này hoạt động tương tự trên Linux:

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

7

Nó dễ như vẻ ngoài của nó.

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

Trong trường hợp bạn có không gian trong đường dẫn của mình, hãy bọc nó trong dấu ngoặc kép:

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

3

Sử dụng 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

Tôi đang sử dụng git-bash trong windows. Cách đơn giản nhất là thay đổi địa chỉ đường dẫn để có dấu gạch chéo về phía trước:

git clone C:/Dev/proposed 

PS: Bắt đầu git-bash trên thư mục đích.

Đường dẫn được sử dụng trong bản sao ---> c: / Dev / đề xuất

Đường dẫn gốc trong windows ---> c: \ Dev \ đề xuất


0

Sử dụng đường dẫn tự nó không làm việc cho tôi.

Đây là những gì cuối cùng đã làm việc cho tôi trên MacOS:

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

Điều này cũng làm việc:

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

Con đường tự hoạt động nếu tôi làm điều này:

git clone --local myawesomerepo myawesomerepocopy

Vâng, ví dụ của OP là Windows, nhưng câu hỏi không được gắn thẻ Windows, vì vậy tôi đã đăng với hy vọng giúp đỡ người dùng Mac
kris larson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.