Câu trả lời:
Các nhánh chủ đề thường là các nhánh nhẹ mà bạn tạo cục bộ và có một tên có ý nghĩa đối với bạn . Chúng là nơi bạn có thể làm việc để sửa lỗi hoặc tính năng (chúng còn được gọi là nhánh tính năng) dự kiến sẽ mất một thời gian để hoàn thành.
Một loại nhánh khác là "nhánh từ xa" hoặc "nhánh theo dõi từ xa". Loại chi nhánh này theo sự phát triển của công việc của người khác và được lưu trữ trong kho lưu trữ của riêng bạn. Bạn định kỳ cập nhật chi nhánh này (sử dụng git fetch
) để theo dõi những gì đang xảy ra ở nơi khác. Khi bạn đã sẵn sàng để bắt kịp với những thay đổi của người khác, bạn sẽ sử dụng git pull
để cả tìm nạp và hợp nhất.
Tôi cũng đã thấy một loại nhánh khác về cơ bản là một cây tệp hoàn toàn riêng biệt trong cùng một kho lưu trữ. Ví dụ, kho Git tự chứa đầu tên người đàn ông và html có chứa nội dung hoàn toàn khác so với tổng chi nhánh. Tôi không biết những loại nhánh này thường được gọi là gì.
Đây không phải là một thuật ngữ kỹ thuật; nó chỉ đề cập đến một nhánh được tạo ra để thực hiện một tính năng cụ thể hoặc sửa lỗi. "Chủ đề" là lý do cho việc tạo ra các chi nhánh, về cơ bản.
https://github.com/dchelimsky/rspec/wiki/Topic-Branches giải thích điều này tốt:
Chi nhánh chủ đề của Cameron là một nhánh riêng biệt mà bạn sử dụng khi làm việc trên một chủ đề duy nhất của Google (một sửa lỗi, một tính năng mới hoặc một ý tưởng thử nghiệm). Nên làm việc trên một nhánh chủ đề thay vì trực tiếp trên đỉnh của chủ master bởi vì:
{... truy cập liên kết ...}
Vì vậy, vì tất cả những lý do này, nên sử dụng một nhánh chủ đề để chuẩn bị gửi ngay cả đối với những đóng góp đơn giản như lỗi sửa lỗi đơn và tương tự.
Mẫu này cũng cho ví dụ. Điều này thực sự khiến tôi phải suy nghĩ, đây có lẽ là điều mà hầu hết các cửa hàng đã làm. Tất cả các dự án nhanh mà tôi từng làm. Tôi đã ủng hộ "Đây không phải là một thuật ngữ kỹ thuật" bởi vì tôi cảm thấy điều này đập vào đầu đinh.
có vẻ như loại nhánh nổi bật và quan trọng nhất không phải là nhánh chủ đề sẽ phát hành nhánh trên kho lưu trữ chính, có sẵn công khai, phải không?
Điều đó có thể phù hợp với bạn, nhưng đó là về bạn và dự án bạn đang nghĩ đến; nó không được xác định bởi Git.
Hầu hết các hệ thống kiểm soát phiên bản (đặc biệt là các hệ thống tập trung) quy định hoặc thực thi một quy trình công việc cụ thể, bao gồm cả những gì hợp lý khi sử dụng một nhánh cho. Git (và ở một mức độ nào đó hầu hết các VCS phân tán) xem xét quy trình công việc đó, các nhánh được sử dụng để làm gì, khi nào cam kết, các repos khác nhau được sử dụng cho mục đích gì, v.v ... đều được người dùng và các thỏa thuận (chính sách) lựa chọn. Vì vậy, Git không thực thi những kỹ thuật này.
Đây là một trong những điều khiến Git khó học. Oliver Steele đã giải thích điều này từ quan điểm của người dùng, viết về Chính sách cam kết .