git clone không có thư mục dự án


85

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 sao chép git, nó sẽ tạo cho tôi thư mục có tên dự án và thư mục dự án của tôi là thư mục 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, thư mục gốc của tôi là

/var/www/sites/mysite/

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

/var/www/sites/mysite/mysite

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

1
Điều này có trả lời câu hỏi của bạn không? Sao chép nội dung của kho lưu trữ GitHub (không có chính thư mục)
Vishrant

Câu trả lời:


193

git clonechấp nhận một đối số cuối cùng là thư mục đích, nó theo mặc định là 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ể chỉ muốn .:

$ git clone origin-url .

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

Sao chép vào một thư mục hiện có chỉ được phép nếu thư mục đó trống.


4
git clone @rodrigo ./heaven
a_m_dev

Và làm thế nào về nhân bản sâu hai cấp? Tôi có hai thư mục trên đầu trang của pom.xml?
Bionix1441

1
@ Bionix1441: Tôi không biết về cấu trúc thư mục của bạn, nhưng nếu bạn xuống hai cấp chỉ cần viết git clone aaa/bbb. Nếu bạn muốn tăng hai cấp độ, bạn có thể thử git clone ..nhưng điều đó sẽ không hiệu quả vì Directoy dành cho cha mẹ của bạn không bao giờ trống.
rodrigo

Cấu trúc như sau folder1\folder2\pom.xml, tôi chỉ cần pom.xmlvà các thư mục ở cùng cấp vớipom.xml
Bionix1441

34

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

git init .
git remote add origin git@github.com:user/repo.git
git fetch origin
git checkout master

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

Cũng phải thiết lập nhánh ngược dòng để phù hợp: git branch --set-upstream-to=origin/master master Sau đó, phải đẩy các thay đổi cục bộ đến nhánh từ xa: git push --force Điều này thay thế nhánh từ xa cũ bằng bản sao cập nhật cục bộ của tôi.
Daniel ZA

7

Điều này cũng hoạt động tốt trên Windows.

git init
git remote add origin git@github.com:user/repo.git
git pull origin master

5

Hãy nhớ rằng kho lưu trữ 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 là khi bạn sao chép một kho lưu trữ vào sai thư mục, bạn có thể chỉ cần di chuyển nội dung thư mục đến bất kỳ nơi nào khác mà bạn muốn và dữ liệu của 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

4

Bạn có thể sao chép dự án của mình vào thư mục con và chúng di chuyển tất cả các tệp bao gồm cả .gitthư mục vào thư mục mẹ (gốc của bạn).


3
tại sao nó không thể được thực hiện dễ dàng hơn, như git clone git@github.com:. bất cứ điều gì \
dzona

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

git clone git @ github: me / name.git.
Salman Mahmud
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.