Sử dụng git để nhận bản sửa đổi mới nhất


380

Tôi muốn theo dõi một dự án sử dụng git. Tôi không muốn sao chép toàn bộ kho lưu trữ và toàn bộ lịch sử, tôi chỉ muốn sửa đổi mới nhất và tôi muốn có thể cập nhật lên các bản sửa đổi mới từ dự án từ xa.

Tôi đã thử sử dụng git clone, nhưng điều này tạo ra một bản sao của toàn bộ kho lưu trữ (kích thước tệp lớn) và theo dõi các thay đổi làm cho không gian đĩa thậm chí còn lớn hơn (100mb tệp hiện chiếm hơn 2gb).

Tôi sẽ không gửi bản vá, và tôi không cần lịch sử. Tôi chỉ muốn phiên bản mới nhất như lật đổ.

Điều này có thể trong git?


2
Git 1.9 / 2.0 (Q1 2014) sẽ hiệu quả hơn nhiều với nhân bản nông: stackoverflow.com/a/21217267/6309stackoverflow.com/a/21217326/6309
VonC

Câu trả lời:


552

Sử dụng --depthtùy chọn trong git clone:

Tạo một bản sao nông với một lịch sử được cắt ngắn theo số lần xác định.

thí dụ: git clone --depth=1 <remote_repo_url>


87
ví dụ:git clone --depth=1 <remote_repo_url>
iDev247

14
cam kết 82fba2b trong git 1.9, những hạn chế này không còn tồn tại.
niutech

1
Hạn chế gì?
Không biết gì

4
@Triangles: Hạn chế (không còn hiện hành): Kho lưu trữ nông có một số hạn chế (bạn không thể sao chép hoặc tìm nạp từ nó, cũng không được đẩy từ cũng không vào), nhưng là đủ nếu bạn chỉ quan tâm đến lịch sử gần đây của một số lượng lớn dự án với một lịch sử lâu dài, và muốn gửi các bản sửa lỗi dưới dạng các bản vá.
odinho - Velmont


79

Giải pháp thay thế để thực hiện clone nông ( git clone --depth=1 <URL>) sẽ là, nếu phía từ xa hỗ trợ nó, sử dụng --remotetùy chọn lưu trữ git :

$ git archive --format=tar --remote=<repository URL> HEAD | tar xf -

Hoặc, nếu kho lưu trữ từ xa có thể duyệt bằng cách sử dụng một số giao diện web như gitweb hoặc GitHub, thì có khả năng nó có tính năng 'snapshot' và bạn có thể tải xuống phiên bản mới nhất (không có thông tin phiên bản) từ giao diện web.


4
Giải pháp này sẽ không đáp ứng yêu cầu này mặc dù: "Tôi muốn có thể cập nhật lên các bản sửa đổi mới từ dự án từ xa". Vì về cơ bản nó tải xuống kho lưu trữ, nó sẽ không thể nhanh chóng chuyển tiếp một hoặc hai cam kết. "Bản sao nông" cho phép điều đó. Tuy nhiên, tôi đoán giải pháp này có trường hợp sử dụng của nó, vì vậy đáng nói.
VasiliNovikov
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.