Về Git nó có thể là một ý nghĩa lịch sử mà Linus Torvalds đã trả lời câu hỏi này từ quan điểm khái niệm vào năm 2007 trong một cuộc nói chuyện đã được ghi lại và có sẵn trực tuyến.
Câu hỏi đặt ra là liệu có thể kiểm tra chỉ một số tệp trong kho lưu trữ Git hay không.
Tech Talk: Linus Torvalds on git t=43:10
Nói tóm lại, ông nói rằng một trong những quyết định thiết kế của Git mà đặt nó ngoài từ hệ thống quản lý nguồn khác (ông trích dẫn BitKeeper và SVN) là Git quản lý nội dung, không tập tin. Các hàm ý là ví dụ một khác biệt của một tập hợp con của các tập tin trong hai phiên bản được tính bằng cách đầu tiên lấy toàn bộ khác biệt và sau đó cắt tỉa nó chỉ để các tập tin được yêu cầu. Khác là bạn phải kiểm tra toàn bộ lịch sử; trong một thời trang tất cả hoặc không có gì. Vì lý do này, ông đề nghị chia các thành phần liên quan lỏng lẻo giữa nhiều kho và đề cập đến một nỗ lực liên tục để thực hiện một giao diện người dùng để quản lý một kho lưu trữ được cấu trúc như một siêu dự án chứa các kho nhỏ hơn.
Theo như tôi biết quyết định thiết kế cơ bản này vẫn còn táo hôm nay. Điều siêu dự án có thể trở thành những gì bây giờ là submodules.
Vì vậy, nếu tôi nhân bản chi nhánh "XX", nó sẽ nhận được tất cả các phụ huynh cam kết từ "chủ", phải không? Hoặc chỉ có một cam kết duy nhất tôi đã thực hiện trên nhánh đó? – pablo
Nếu bạn sao chép (tìm nạp) chỉ nhánh "XX", bạn sẽ nhận được tất cả các cam kết của nó, bao gồm các cam kết đó nhánh "XX" có chung với nhánh "chính". Trong cam kết Git không '* thuộc *' cho một chi nhánh. –
Ok, sau đó nó không phải là một bản sao một phần nào kể từ khi bạn nhận được tất cả các bậc cha mẹ và do đó toàn bộ repos (ok, phần lớn nhất mà là trên chủ) – pablo