Câu hỏi Làm thế nào để bạn sao chép một kho lưu trữ Git vào một thư mục cụ thể?


Thực hiện lệnh git clone git@github.com:whatever tạo một thư mục trong thư mục hiện tại của tôi có tên là bất kỳ thứ gì và thả nội dung của kho lưu trữ Git vào thư mục đó:

/httpdocs/whatever/public

Vấn đề của tôi là tôi cần nội dung của kho lưu trữ Git được nhân bản vào thư mục hiện tại của tôi để chúng xuất hiện ở vị trí thích hợp cho máy chủ web:

/httpdocs/public

Tôi biết làm thế nào để di chuyển các tập tin sau khi tôi nhân bản kho lưu trữ, nhưng điều này dường như để phá vỡ Git, và tôi muốn để có thể cập nhật chỉ bằng cách gọi điện thoại git pull. Tôi có thể làm cái này như thế nào?


1718
2018-03-16 15:56


gốc


Trên Windows, bạn có thể di chuyển các tệp từ thư mục mà bạn sẽ sao chép repo [nếu có] để nó trống khi bạn làm git clone. Sau khi nhân bản di chuyển các tệp của bạn trở lại [ctrl-z] và whoala! Nếu thư mục hiện tại trống thì chỉ cần sử dụng: git clone giturl .


Các câu trả lời:


Tùy chọn A:

git clone git@github.com:whatever folder-name

Tùy chọn B:

di chuyển thư mục .git.

Tốt hơn:

Giữ bản sao làm việc của bạn ở một nơi khác và tạo liên kết tượng trưng.


2413
2018-03-16 16:08



Tôi đã không nghĩ đến lựa chọn 'Tốt hơn' của bạn, và tôi thích nó mặc dù tôi không chắc chắn tại sao. Ưu điểm của điều này là gì? - David Smith
Nó có thể không cung cấp bất kỳ lợi thế ngay bây giờ, nhưng nó có thể giúp bạn tiết kiệm rất nhiều rắc rối nếu bạn quyết định di chuyển công cụ xung quanh một số ngày. - Can Berk Güder
Ngoài ra, bạn có thể chuyển đổi giữa các bản phát hành nhanh chóng với tùy chọn "Tốt hơn". Điều này đặc biệt hữu ích và được sử dụng cho các máy chủ. - Halil Özgür
@MEM Tôi nghĩ rằng anh ấy có nghĩa là tạo ra một liên kết tượng trưng cho .git i.e. ln -s path/to/.git path/to/working/directory - Alexander
Bất cứ ai có thể giải thích những lợi ích này? Hôm nay tôi hơi dày đặc. Làm cách nào để sử dụng máy chủ lợi ích liên kết tượng trưng? - triple


Ví dụ tôi nghĩ rất nhiều người hỏi câu hỏi này là sau này. Nếu bạn là trong thư mục bạn muốn các nội dung của kho git được đổ xuống, chạy:

git clone git@github.com:whatever .

Các "." ở cuối xác định thư mục hiện tại làm thư mục kiểm tra.


512
2018-02-25 17:15



Nếu thư mục đó không trống, thư mục này không hoạt động. - Charlie Flowers
đúng, vì vậy bạn không muốn chạy "git init" trong thư mục này trước khi nhân bản vào nó. Nhưng nếu bạn đã làm, sau đó loại bỏ các thư mục .git trước khi nhân bản sẽ làm các trick. - Magne
cố định cho các thư mục trống trong câu trả lời của tôi - csomakk
không thể làm việc này trong nitrous.io? ngay cả sau khi đổ, nó nói rằng thư mục không trống - Tejas Manohar
@TejasManohar Hãy chắc chắn rằng bạn đã xóa các tập tin ẩn là tốt. - Britic


Đi vào thư mục .. Nếu thư mục trống, thì:

git clone git@github.com:whatever .

khác

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

176
2017-12-12 08:43



Trên thực tế đây là câu trả lời hữu ích nhất cho tôi khi tôi chỉ cần đẩy dự án đã tạo vào kho lưu trữ mới được tạo ra. Thanh danh! - wirher
Chỉ câu trả lời chỉ định cách thanh toán vào thư mục không trống, cảm ơn bạn. - Preston Badeer
Điều này thực sự hữu ích như switch -t trên không được hiển thị rõ ràng trên tài liệu của git checkout. - Chetabahana
công tắc -t làm gì? Tôi nhận được một thông báo hủy bỏ với một danh sách các tập tin không được theo dõi sẽ bị ghi đè bằng cách thanh toán? Phải làm gì trong tình huống này? Tôi không muốn các tập tin đó bị ghi đè? - Momin Zahid
-t tài liệu từ git: -t, --track Khi tạo một nhánh mới, hãy thiết lập cấu hình "ngược dòng". Xem "--track" trong git-branch (1) để biết chi tiết. - csomakk


Cơ bản Git Repository Cloning

Bạn sao chép một kho lưu trữ với

git clone [url]

Ví dụ, nếu bạn muốn sao chép thư viện Git của trường Đại học Stanford, được gọi là open_framework, bạn có thể làm như sau:

$ git clone git://github.com/SU-SWS/open_framework.git

Điều đó tạo ra một thư mục có tên open_framework (tại vị trí hệ thống tệp cục bộ hiện tại của bạn), khởi tạo một thư mục .git bên trong nó, kéo xuống tất cả dữ liệu cho kho lưu trữ đó và kiểm tra một bản sao làm việc của phiên bản mới nhất. Nếu bạn đi vào thư mục open_framework mới được tạo, bạn sẽ thấy các tệp dự án trong đó, sẵn sàng để được làm việc hoặc sử dụng.

Nhân bản một kho lưu trữ vào một thư mục cục bộ cụ thể

Nếu bạn muốn sao chép kho lưu trữ vào một thư mục có tên khác ngoài open_framework, bạn có thể chỉ định đó làm tùy chọn dòng lệnh tiếp theo:

$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme

Lệnh đó thực hiện tương tự như lệnh trước, nhưng thư mục đích được gọi là mynewtheme.

Git có một số giao thức truyền khác nhau mà bạn có thể sử dụng. Ví dụ trước sử dụng giao thức git: //, nhưng bạn cũng có thể thấy http (s): // hoặc user @ server: /path.git, sử dụng giao thức truyền SSH.


70
2018-04-23 21:27



điều này sẽ tự động tạo một thư mục trong thư mục hiện tại của bạn và đặt các tệp ở đó. Vì vậy, bạn không cần phải lo lắng về việc ghi đè lên bất kỳ thư mục nào khác. - arn-arn
Hoạt động tốt trong Git vào năm 2018 trên Windows Git Bash. - Eric Hepperle - CodeSlayer2010


Khi bạn di chuyển các tệp đến nơi bạn muốn, bạn cũng đang di chuyển .git danh mục? Tùy thuộc vào hệ điều hành và cấu hình của bạn, thư mục này có thể bị ẩn.

Nó chứa repo và các tệp hỗ trợ, trong khi các tệp dự án nằm trong tệp của bạn /public thư mục chỉ là các phiên bản trong cam kết kiểm tra hiện tại (chi nhánh chính theo mặc định).


12
2018-03-16 16:14





Bản sao:

git clone git@jittre.unfuddle.com:jittre/name.git

Sao chép "nhánh cụ thể":

git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git

11
2018-04-04 06:46





Nếu bạn muốn sao chép vào thư mục hiện tại, bạn nên thử điều này:

git clone https://github.com/example/example.git ./

11
2017-09-11 00:59



gây tử vong: đường dẫn đích '.' đã tồn tại và không phải là một thư mục trống. - Cleiton


Hãy chắc chắn rằng bạn loại bỏ kho lưu trữ .git nếu bạn đang cố gắng kiểm tra điều đó vào thư mục hiện tại.

rm -rf .git sau đó git clone https://github.com/symfony/symfony-sandbox.git


9
2018-02-25 22:17





Để sao chép kho git vào một thư mục cụ thể, bạn có thể sử dụng -C <path> thông số, ví dụ:

git -C /httpdocs clone git@github.com:whatever

Mặc dù nó vẫn sẽ tạo ra whatever thư mục trên đầu trang của nó, do đó, để sao chép nội dung của kho lưu trữ vào thư mục hiện tại, hãy sử dụng cú pháp sau:

git git@github.com:whatever .

Lưu ý rằng nhân bản vào một thư mục hiện có là chỉ có được phép khi thư mục là trống.

Vì bạn đang nhân bản vào thư mục có thể truy cập cho công chúng, hãy xem xét tách kho lưu trữ Git khỏi cây đang hoạt động của bạn bằng cách sử dụng --separate-git-dir=<git dir> hoặc loại trừ .git trong cấu hình máy chủ web của bạn (ví dụ: .htaccess tập tin).


9
2018-01-08 20:04





Để sao chép Thư mục làm việc hiện tại:

git clone https://github.com/link.git 

Để sao chép Thư mục khác:

git clone https://github.com/link.git ./Folder1/Folder2

Hy vọng nó giúp :)


8
2018-03-21 16:03





Sử dụng

git clone <repository>

Sao chép kho lưu trữ nằm ở <repository> vào máy cục bộ. Kho lưu trữ ban đầu có thể được đặt trên hệ thống tệp cục bộ hoặc trên máy từ xa có thể truy cập qua HTTP hoặc SSH.

git clone <repo> <directory>

Sao chép kho lưu trữ tại <repository> vào thư mục có tên <directory> trên máy cục bộ.

Nguồn: Thiết lập một kho lưu trữ


7
2018-06-26 11:42