Tôi cần xuất sang lưu trữ một tập hợp các cam kết trong kho lưu trữ git. Làm cách nào để thực hiện việc này? Sử dụng svn, tôi có thể chọn cam kết và xuất thành zip.Git: truy xuất cam kết cụ thể
Trả lời
Để xuất kho lưu trữ tối đa một cam kết nhất định:
git archive -o export.zip <COMMIT>
. Thay thế <COMMIT>
bằng số cam kết bạn muốn xuất.
Để tạo một bản vá giữa hai cam kết:
git diff COMMIT1 COMMIT2 > patch.txt
Tôi mặc dù lệnh này sẽ xuất tất cả các cam kết trong kho lưu trữ cho đến khi cam kết được chỉ định được tìm thấy. Tôi chỉ cần xuất cam kết được chỉ định. Cũng giống như một miếng vá. – user1170896
Trả lời câu trả lời. – tobiasbayer
ok ... Nhưng một bản vá được sử dụng vào một kho lưu trữ khác. Nó chứa đánh dấu để hiểu nơi sửa đổi đã được thực hiện. Tôi cần lưu trữ chỉ với các tệp đã sửa đổi (cập nhật) giữa các cam kết được chỉ định. – user1170896
Git có một cách tiện dụng của việc tạo ra một bản vá cho từng cam kết. Mặc dù điều này ban đầu có nghĩa là một cách để định dạng các bản vá để chúng có thể được gửi qua email, chúng là một cách tiện dụng để trích xuất một tập hợp các thay đổi.
Lệnh bạn muốn là git format-patch
và cách bạn áp dụng các bản vá lỗi được định dạng này trở lại git là với lệnh git am
.
Ví dụ, nếu bạn bạn có hai cam kết C1 và Cn mà bạn muốn xuất như một tập hợp các bản vá lỗi git bạn chỉ cần:
git format-patch -k C1..Cn
này sẽ tạo ra một tập hợp các bản vá lỗi đánh số (trong thư mục hiện tại của bạn). Mỗi bản vá sẽ khác với cam kết, cũng như thông tin cam kết (Tiêu đề, nhận xét, tác giả, ngày, v.v.).
Đây là nhiều hơn một tệp khác biệt đơn giản giữa hai cam kết sẽ cung cấp cho bạn.
Tôi nghĩ điều này cần phải là 'git format-patch -k C1 ~ ..Cn' thay vì' git format-patch -k C1..Cn', bởi vì bên trái của phạm vi là _exclusive_, vì vậy bạn phải cung cấp _parent_ ('~') của lần commit đầu tiên. – nh2
- 1. Xem một Git cụ thể cam kết
- 2. JGit: Truy xuất thẻ được liên kết với cam kết git
- 3. Hợp nhất một cam kết cụ thể
- 4. Xóa cam kết trước cam kết cụ thể
- 5. Xấu cam kết Git
- 6. git không thể chỉnh sửa cam kết
- 7. kéo cụ thể cam/tập tin từ git
- 8. SVN Cam kết các tệp cụ thể
- 9. Git cam kết vấn đề: Không thể nối thêm .git/
- 10. Dừng một git cam kết bởi một tác giả cụ thể bằng cách sử dụng móc trước cam kết
- 11. Tìm thông tin thẻ cho một cam kết cụ thể
- 12. Không thể đặt lại tệp cho một cam kết cụ thể bằng cách sử dụng Git
- 13. Có thể loại trừ các cam kết cụ thể khi thực hiện hợp nhất git không?
- 14. Làm cách nào tôi có thể xem tệp như ở một cam kết git cụ thể?
- 15. Cách liệt kê tất cả các thẻ trỏ đến một cam kết cụ thể trong git
- 16. Hợp nhất Git cam kết
- 17. Xóa git cũ cam kết
- 18. Git cam kết từ python
- 19. git look cam kết đăng nhập cho cam kết id
- 20. git add/rm (cam kết)
- 21. git tôi có thể tăng tốc độ cam kết không?
- 22. Làm cách nào để tải xuống cam kết git cụ thể từ kho lưu trữ?
- 23. Cam kết các phần cụ thể của một tập tin trong Git
- 24. Xóa một cam kết cụ thể trong lịch sử git bao gồm hợp nhất
- 25. Tạm thời chuyển bản sao làm việc sang một cam kết Git cụ thể
- 26. git - bỏ qua các cam kết cụ thể khi hợp nhất
- 27. Git: làm thế nào để loại bỏ lịch sử trước một cụ thể cam kết
- 28. Làm cách nào để chuyển đến cam kết cụ thể bằng git-subtree?
- 29. Viết GIT tiền cam kết trong java?
- 30. Cam kết trong một gói git
bạn có nghĩa là sự khác biệt về xuất khẩu của các cam kết này? – CharlesB
Vâng xin lỗi vì tôi nhận ra nó không dễ hiểu. Tôi cần một tệp lưu trữ có hầu hết các tệp cập nhật giữa 2 lần commit. – user1170896