Tôi là loại mới để kiểm soát phiên bản với GIT. Tôi đọc số này Guide và đang theo cách tiếp cận cơ bản được hiển thị trong biểu đồ HERE. Tuy nhiên, tôi có một số nghi ngờ về cách sử dụng các nhánh git để tách biệt việc phát triển các tính năng mới từ mã hiện có.Cách sử dụng đúng git và các chi nhánh
Đây là một ví dụ. Giả sử rằng lúc bắt đầu, kho của tôi chứa hai chi nhánh chủ yếu sau đây:
- Thạc sĩ ngành (chứa các phiên bản phát hành)
- Phát triển Chi nhánh (chứa các bản sửa lỗi mới hoặc các tính năng để tách chúng ra khỏi các tính năng dự án hiện có)
Khi tôi cần phát triển các tính năng hoặc mô-đun mới, tôi tạo các chi nhánh từ Phát triển và bắt đầu các dự án mã mới tại đó. Ví dụ: tôi tạo ba chi nhánh mới để thêm các tính năng liên quan đến Sun
, Star
và SuperNova
. Bây giờ, kho chứa của tôi năm chi nhánh:
- Thạc sĩ ngành: Phát hành 1.0.0
- Phát triển chi nhánh: Sửa đổi sau khi phát hành 1.0.0
- chi nhánh NewModule_Sun: thêm Sun dự án (tạo từ Phát triển chi nhánh)
- chi nhánh NewModule_Star: thêm sao để dự án (tạo từ Phát triển chi nhánh)
- chi nhánh NewModule_SuperNova: thêm SuperNova để Project (tạo từ Phát triển chi nhánh)
Đối với phiên bản 1.0.1, tôi muốn bao gồm các mô-đun Sun
và Star
, nhưng không bao gồm SuperNova
. Vì vậy, tôi kết hợp chúng với phát triển và sau đó hợp nhất phát triển với phát hành:
- Merge NewModule_Sun vào Phát triển
- Merge NewModule_Star vào Phát triển
- Merge Phát triển thành Master (phát hành 1.0.1)
Nhánh Phát triển cần được lưu giữ vĩnh viễn, nhưng các chi nhánh Sun
và Star
không còn cần thiết nữa. Họ sẽ bị xóa:
- Xóa chi nhánh NewModule_Sun
- Xóa chi nhánh NewModule_Star
Sau những thay đổi kho của tôi chứa ba ngành sau đây:
- Thạc sĩ Chi nhánh: Phát hành 1.0. 1
- Phát triển chi nhánh: Sửa đổi sau khi phát hành 1.0.1
- Chi nhánh NewModule_SuperNova: Sửa đổi sau khi phát hành 1.0.0 (được tạo ra từ Phát triển khi nó không được sáp nhập với chi nhánh sao/Sun)
==
Thứ nhất, tôi đang sử dụng các chi nhánh git chính xác?
Thứ hai, tôi đã xem lại lịch sử của chi nhánh Phát triển cuối cùng và có vẻ như tôi đã mất một số thông tin trên số NewModules
. Điều đó có bình thường không? Và, có thể chuyển tất cả thông tin lịch sử sang nhánh Phát triển không?
Cảm ơn bạn !!
Điều này có thể hữu ích. http://stackoverflow.com/questions/2613903/does-deleting-a-branch-in-git-remove-it-from-the-history – codef0rmer