Tái sử dụng một chi nhánh sáp nhập, thực hành tốt?


36

Hiện tại, tôi đã từng tạo một chi nhánh mới mỗi lần tôi phải thêm một tính năng mới vào ứng dụng của mình.

Khi tính năng của tôi kết thúc và hoạt động, tôi hợp nhất nó với nhánh chính.

Nhưng sau này, khi tôi cần cập nhật tính năng này (như cải tiến) thì tốt hơn là tạo một nhánh mới hay tôi cần phải khởi động lại cái trước với chủ, làm bản cập nhật sau đó hợp nhất lại?

Ví dụ: tôi có chi nhánh được gọi là thành viên người mẫu trong ứng dụng Ruby on Rails. Sau đó, tôi cần thêm một số thuộc tính cho mô hình thành viên (được tạo trong nhánh này). Tôi nên làm gì? Khởi động lại nhánh này với chủ, cập nhật mô hình và hợp nhất lại hoặc đơn giản là tạo một nhánh mới?


1
Nếu dự án của bạn trở nên rất lớn thì việc sử dụng lại các nhánh cũ sẽ rất tốn thời gian để git chuyển đổi và / hoặc cập nhật. So với vài giây cần để tạo một nhánh mới.
Phản ứng

Câu trả lời:


34

Tạo một nhánh mới, bởi vì:

  • Một chi nhánh hoàn toàn mới ít có khả năng có xung đột hợp nhất khi bạn hoàn thành và muốn hợp nhất nó thành chủ. Vài điều dễ bị lỗi hơn là sửa các xung đột hợp nhất.

  • Tính năng này có thể đã trải qua một số thay đổi và cập nhật kể từ khi triển khai ban đầu, khiến chi nhánh ban đầu hoàn toàn lỗi thời. Cách duy nhất để cập nhật nó là hợp nhất chủ vào nhánh tính năng ... và tại thời điểm đó, bạn chỉ cần phân nhánh chính theo cách phức tạp không cần thiết.

  • Nếu chỉ vì đơn giản, thông thường nên có cùng một quy trình làm việc để cập nhật, sửa lỗi và các tính năng mới. Điều đó áp dụng cho việc phân nhánh, đánh giá mã, sử dụng trình theo dõi lỗi và khá nhiều thứ khác. Sự khác biệt giữa việc cập nhật một tính năng hiện có, thêm một tính năng mới và sửa lỗi thường là chủ quan.


7

Sử dụng một chi nhánh mới.

Để đặt tên, bạn có thể xem xét sử dụng định dạng nội bộ rằng this_work là tiện ích mở rộng hoặc thay đổi thành that_work

Ví dụ: bạn có thể đặt tên cho nhánh thứ hai

modeling-member--attributes

với dấu hiệu - báo hiệu rằng tên bên trái là nhánh ban đầu

Chúng tôi giải quyết một vấn đề hơi giống nhau khi chúng tôi sử dụng số vé Jira cho tên chi nhánh. Đôi khi có một chút công việc cho cùng một vé. Đôi khi một sự thay đổi cơ sở dữ liệu không thể được khôi phục. Trong những trường hợp chúng tôi sử dụng, ví dụ, nhánh ban đầu SEND-123 và nhánh thứ hai là SEND-123a


0

Nếu bạn chỉ muốn lưu các xác nhận từ hợp nhất trên bản gốc và bạn đang sử dụng github, bạn có thể sử dụng "Fork" cho mọi tính năng mới và thực hiện yêu cầu kéo và chấp nhận yêu cầu kéo sau khi bạn hoàn thành mọi tính năng mới.

Tôi không khuyên bạn nên làm việc trên các nhánh cũ, vì bạn có thể gặp xung đột khi bạn hợp nhất nó với người đứng đầu và tất nhiên không cần thiết phải làm điều đó ...


4
"U" không phải là một từ tiếng Anh. Nói văn bản như vậy nên được dành riêng cho văn bản và twitter.
Gort Robot

@Steven Bây giờ, ngay cả ở đó, khi đối với (hầu hết mọi người), mỗi chữ cái không còn yêu cầu ba hoặc bốn lần nhấn phím, thì nên tránh. :)
TZHX
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.