2012-01-22 25 views
21

Đây là kịch bản của tôi:Làm thế nào để làm việc trên nhánh git mới phụ thuộc vào một nhánh git khác chưa được hợp nhất?

  • Dự án của tôi đang theo mô hình phân nhánh chủ đề.

  • Tôi tạo chi nhánh để khắc phục một số sự cố, hãy gọi đến vấn đề chi nhánh này. Tôi thực hiện các thay đổi và gửi yêu cầu kéo.

  • Tôi cần bắt đầu làm việc trên một tính năng mới, vì vậy tôi tạo chi nhánh thứ hai có tên my_feature và cam kết một loạt các thay đổi.

  • Tại một thời điểm nào đó, tôi nhận thấy my_feature phụ thuộc vào problem_fixes chưa được chấp nhận và hợp nhất (chi nhánh my_feature dựa vào một số bản sửa lỗi từ chi nhánh đầu tiên và tôi không thể tiến triển nếu không có chúng).

Ngắn hạn của dự án của tôi dẫn đến chấp nhận và hợp nhất chi nhánh đầu tiên của tôi nhanh hơn, quy trình tốt nhất để làm gì ở đây?

Tôi tự hỏi liệu tôi có cần bắt đầu một nhánh thứ ba mới dựa trên problem_fixes (thay vì làm chủ) và hợp nhất các cam kết của tôi với my_feature không? Hoặc nó sẽ được okay nếu tôi chỉ cần kết hợp problem_fixes vào my_feature và tiếp tục làm việc - giả định problem_fixes được sáp nhập vào master đầu tiên, khi my_feature được sáp nhập nó về mặt lý thuyết nên được (?)

+0

Tôi nghĩ câu hỏi của bạn sẽ phù hợp hơn nhiều trên http://programmers.stackexchange.com/ – Theo

+1

@Theo: Tôi không nghĩ vậy. Câu hỏi này là về "các công cụ phần mềm thường được sử dụng bởi các lập trình viên", theo faq. –

+3

meh, tôi ghét stackexchange. phân mảnh ftw. cảm ơn cho con trỏ mặc dù tôi sẽ kiểm tra xem nó ra. (chỉnh sửa: các danh mục trên stackoverflow sẽ khiến tôi hạnh phúc hơn nhiều so với một nhóm liên kết của các trang riêng biệt) – mtjhax

Trả lời

9

Vâng, tôi nghĩ rằng bạn đang ở trên đi đúng hướng. Những gì tôi sẽ làm là tạo ra một chi nhánh mới my_feature, có lẽ làm việc một chút. Khi tôi nhận ra rằng my_feature phụ thuộc vào problem_fixes, hợp nhất nhánh đó vào. Điều này có thể xảy ra ngay lập tức nếu bạn biết rằng bạn sẽ cần đến nó. Sau đó, khi my_feature được hợp nhất thành chính, bạn sẽ có những thay đổi bạn cần.

Lưu ý rằng miễn là bạn có quy trình xem xét mã mạnh mẽ, sau đó nếu bạn cố gắng hợp nhất my_feature vào chính trước problem_fixes, thì bạn sẽ nhận thấy tại thời điểm đó.

+2

cảm ơn greg, và btw đẹp tóc bro :) – mtjhax

10

Tạo nhánh chủ đề của chi nhánh đầu tiên. Ngay sau khi lần đầu tiên được sáp nhập vào tổng thể, bạn có thể rebase trên đầu trang của điều đó, và giả định không quá nhiều đã được thay đổi nó không phải là một vấn đề.

Nếu các cam kết của nhánh đầu tiên không thay đổi, nhánh mới của bạn sẽ xếp chồng lên nhau, và nếu các cam kết bị thay đổi (bị đè nén, chỉnh sửa hoặc bất cứ điều gì), bạn luôn có thể thực hiện việc rebase tương tác của nhánh thứ hai và chỉnh sửa nó để nhìn tốt khi chi nhánh đầu tiên đã được sáp nhập.

+1

Hình như tôi có hai câu trả lời xuất hiện để giải quyết vấn đề của tôi. Greg trả lời đầu tiên và với hướng dẫn từng bước một hơn để đánh dấu câu trả lời, nhưng đã bình chọn cho bạn. Nếu tôi có thể cho bạn +2 để buộc tôi phải học về việc rebasing - đó là một khái niệm thực sự quan trọng. – mtjhax

Các vấn đề liên quan