Làm cách nào để gửi email cho ai đó kho lưu trữ git?


84

Tôi đã thử:

git archive HEAD --format=zip > archive.zip

: và sau đó tôi gửi email đến archive.zip và ở đầu kia, họ giải nén archive.zip vào một thư mục. Nhưng khi họ thử bất kỳ lệnh git nào, họ phát hiện ra rằng điều này không tạo ra một kho lưu trữ git hợp lệ


19
Đối với những người khác tìm thấy điều này: lý do git archive không phù hợp với công việc là nó chỉ đóng gói cây công việc. Nó dùng để làm những việc như tạo tarball cho tất cả nguồn của bạn, để phân phối.
Cascabel

Câu trả lời:


113

Bạn có thể sử dụng git bundlevà gửi email một tệp duy nhất

Xem " sao lưu dự án sử dụng git "

Gói git chỉ là một tệp có thể được tạo rất dễ dàng và nhập lại vì nó có thể được coi như một điều khiển từ xa khác.

Sau khi nhận được, bạn có thể sao chép nó hoặc tìm nạp từ tệp đó.

Như đã đề cập trong " Sao lưu repo github ", có thể bạn sẽ muốn email đầu tiên tạo nhóm của mình với tất cả các nhánh:

$ git bundle create /tmp/foo-all --all

Như Andreas đã đề cập trong các bình luận, Scott Chacon gần đây (tháng 3 năm 2010) đã viết một bài báo "dễ thương" về chủ đề này trên blog ProGit :

Git's Little Bundle of Joy


3
@Zubair: vâng, tất cả lịch sử được lưu, trái ngược với git archive!
VonC

2
Cảm ơn. I figured it out: git init, và sau đó: git pull bundle.bdl thạc sĩ
appshare.co

6
@Zubair: tách nó ra? Bạn chỉ cần sao chép nó để lấy lại git repo bình thường. Hoặc kéo nó trong một repo trống. Đó là, tôi thấy bây giờ, những gì bạn đã làm;)
VonC

1
Đây là tổng quan tốt về cách sử dụng lệnh gói và tác dụng của nó: progit.org/2010/03/10/bundles.html
Andreas

2
@BVengerov Liên kết hiện là git-scm.com/blog/2010/03/10/bundles.html
VonC

4

Như câu trả lời trước đã nói, gói git là cách.

Nếu bạn muốn tạo một gói từ chỉ sử dụng một nhánh (tôi thích chỉ gói chính) và gửi qua e-mail, bạn có thể làm như sau:

$ git bundle create /tmp/mygitbackup.bundle master

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.