2013-07-10 30 views
32

Tôi đã cấp quyền truy cập vào máy chủ và muốn sao chép git repo vào thư mục gốc của mình. Nhưng khi tôi git clone nó sẽ làm cho tôi thư mục với tên dự án, và thư mục dự án của tôi là gốc của tôi. Tôi không có quyền truy cập vào thư mục mẹ của tôi gốc của tôi làgit clone không có thư mục dự án

/var/www/sites/mysite/ 

và khi tôi làm nhân bản cấu trúc thư mục sẽ

/var/www/sites/mysite/mysite 
+0

đảm bảo không phân phối .git trong apache/máy chủ web bạn chọn. – mnagel

Trả lời

80

git clone chấp nhận đối số cuối cùng là thư mục đích, theo mặc định tên của dự án nhưng bạn có thể thay đổi nó. Trong trường hợp của bạn, bạn có thể muốn chỉ đơn giản .:

$ git clone origin-url . 

Nhưng lưu ý rằng, từ man git-clone:

Nhân bản thành một thư mục hiện có chỉ được phép nếu thư mục rỗng.

2

Bạn có thể sao chép dự án của bạn vào thư mục con và họ di chuyển tất cả các file trong đó có .git vào thư mục cha (gốc của bạn).

+1

lý do tại sao nó không thể được thực hiện dễ dàng hơn, như git clone [email protected]: bất cứ điều gì. \ – dzona

+0

nó có thể, xem rodrigos câu trả lời. nhưng tôi biết rằng một repo git chỉ là một loạt các tập tin có thể được di chuyển xung quanh một cách tự do, câu trả lời này rất dễ nhớ. – mnagel

11

Bạn có thể cũng chỉ cần thiết lập một repo mới và sau đó điều khiển từ xa theo dõi và chi nhánh:

git init . 
git remote add origin [email protected]:user/repo.git 
git fetch origin 
git checkout master 
+0

Điều này vẫn không hoạt động nếu repo có thư mục cha – Hittz

4

Hãy nhớ rằng một kho git chỉ đơn giản là cấu trúc thư mục nơi bạn lưu trữ nó. Điều này có nghĩa rằng khi bạn sao chép một kho lưu trữ vào thư mục sai, bạn chỉ có thể di chuyển các nội dung thư mục ở bất kỳ nơi nào khác mà bạn muốn và dữ liệu kho lưu trữ vẫn còn nguyên vẹn. Vì vậy, ví dụ: bạn có thể chạy các lệnh sau từ dòng lệnh:

$ mv /var/www/sites/mysite/mysite/* /var/www/sites/mysite` 
$ mv /var/www/sites/mysite/mysite/.* /var/www/sits/mysite` 
$ rmdir /var/www/sites/mysite/mysite 
Các vấn đề liên quan