Việc sử dụng tốt phân nhánh git chắc chắn có thể giúp ích cho việc này. Điều quan trọng là mỗi nhánh riêng lẻ có cơ sở cấu hình ổn định: không có gì bên ngoài nhánh có thể thay đổi trạng thái cấu hình bên trong nhánh, để sau này khi đến lúc xuất cấu hình trong nhánh và hợp nhất nó vào sản xuất, chỉ những thay đổi có liên quan đến chi nhánh được ghi lại.
Một cách để làm điều này là có một nhánh chính gọi là sản lượng
và HEAD của nhánh đó luôn theo dõi trạng thái sản xuất hiện tại của cơ sở mã của bạn. Tất cả các bạn đồng ý không cam kết hoặc hợp nhất mọi thứ với sản lượng
trừ khi bạn đang chuẩn bị phát hành trực tiếp những nội dung đó.
Khi Arjun muốn làm việc trên một tính năng mới, họ tạo một nhánh mới từ sản lượng
, và họ gọi nó là arjun-1
.
Ngày hôm sau, Beth cần sửa một lỗi nên cô ấy đã mở chi nhánh mới của riêng mình sản lượng
gọi điện beth-1
.
Trong khi đó, người quản lý nội dung Ceci đang xây dựng biểu mẫu web trên giao diện người dùng của trang web, điều đó có nghĩa là cô ấy đang thực hiện các thay đổi cấu hình trực tiếp khác với trạng thái cấu hình của sản lượng
. Theo một cách nào đó, cô ấy cũng đang tách ra khỏi sản lượng
! Trên thực tế, hãy tiếp tục và tạo một ceci-1
chi nhánh của sản lượng
now để đại diện cho điều này, mặc dù chúng tôi có thể sẽ chưa cam kết bất cứ điều gì với nó.
Vài ngày sau, các chi nhánh tương ứng của Arjun và Beth đã được xem xét và chấp nhận, đồng thời ban quản lý muốn triển khai một bản phát hành mới cùng với công việc của họ lên trang web trực tiếp.
Điều đầu tiên cần làm là kiểm tra ceci-1
nhánh, xuất cấu hình trực tiếp và gửi các tệp cấu hình đã cập nhật tới ceci-1
.
Bây giờ bạn có thể tiến hành hợp nhất thành sản lượng
: tính năng mới arjun-1
, bản sửa lỗi beth-1
và cập nhật cấu hình trực tiếp ceci-1
. Có thể có xung đột hợp nhất để xem xét, nhưng bạn không cần phải lo lắng về việc vô tình ghi đè lên cấu hình của người khác. Điều này là do mỗi nhánh riêng lẻ có cơ sở nhất quán để xuất các thay đổi cấu hình riêng lẻ của riêng chúng.
Giả sử bạn đã không thực hiện một ceci-1
chi nhánh. Thay vào đó, bạn đã hợp nhất arjun-1
và beth-1
vào trong sản lượng
, sau đó xuất cấu hình trực tiếp và đưa các bản cập nhật trực tiếp vào sản lượng
. Bạn đã hơi say lên! Bạn đã thay đổi cơ sở cho các thay đổi cấu hình trang web trực tiếp của Ceci. Chúng dựa trên tình trạng sản xuất không có chi nhánh của Arjun và Beth. Việc xuất bây giờ sẽ ghi đè lên bất kỳ thay đổi cấu hình nào họ đã thực hiện.