Tôi cần chuyển một repo hoàn chỉnh sang một máy không nối mạng mới, tốt nhất là một thực thể tệp duy nhất. Bó git cho phép git fetch
, git pull
hoạt động phong cách trong một môi trường sneakernet nhưng dường như giả định rằng bạn đã có một phiên bản làm việc của repo trên máy đích.
Lời mời đúng là gì:
- Gói tất cả các chi nhánh trong repo hiện tại
- Khởi động repo mới trên thư mục đích, tức là cài đặt cam kết gốc
Tôi đã gửi một bản vá ngược dòng để làm rõ:
`git clone` can use any bundle created without negative refspecs
(e.g., `new`, but not `old..new`).
If you want to match `git clone --mirror`, which would clone other
refs such as `refs/remotes/*`, use `--all`.
If you want to provide the same set of refs that a clone directly
from the source repository would get, use `--branches --tags` for
the `<git-rev-list-args>`.
Vì vậy, $ git bundle create repo.bundle --branches --tags
tốt nhất phù hợp với nhân bản.
$ git bundle create repo.bundle --all
sẽ cung cấp hình ảnh phản chiếu của máy nguồn của bạn, bao gồm cả máy chủ từ xa.
--all
tùy chọn không có trong trang người dùng của tôi chobundle
(Tôi đang xem phiên bản 1.7.6.msysgit.0), cũng như việc sử dụng tệp .bundle trong phần URL choclone
. Nó giúp tôi tự tin hơn để giới thiệu việc sử dụng nó.