2013-06-03 23 views
5

Tôi đã tìm kiếm rất nhiều nhưng không thể tìm được giải pháp tự tin (tha thứ cho tôi vì tôi mới tham gia git và có lẽ tôi không nhận được một số thuật ngữ tốt). Vì vậy, tôi sẽ nêu vấn đề chính xác của tôi ở đây:Git Hợp nhất mà không cần xóa chi nhánh khác để kéo các thay đổi

  1. Tôi có một phần mềm (ví dụ trong ngành chính) trong đó tôi vừa phát hành phiên bản 5.0 và sau đó tôi đã tạo ra một chi nhánh mới (nói 5b) để sửa chữa tất cả các vấn đề đến trong chi nhánh.

  2. Tất cả các tính năng mới đang được thêm vào nhánh chính.

  3. Bây giờ tôi phải cung cấp một bản dựng với các tính năng mới cho ai đó, nhưng tôi cũng muốn có tất cả các sửa lỗi.

  4. Logic của tôi nói rằng tôi có thể kéo tất cả các thay đổi từ 5b, hợp nhất nó với chính và tạo bản dựng.

Vấn đề duy nhất là tôi muốn giữ nhánh đó 5b vì nó có thể được thêm vào các bản sửa lỗi khác. Trong khi ở chính, tất cả các thay đổi từ 5b sẽ có sẵn.

Vui lòng cho tôi biết cách thực hiện việc này. Một câu trả lời khôn ngoan với một chút chi tiết sẽ thực sự hữu ích.

Cảm ơn,

Trả lời

8

Bạn có một chi nhánh - chính

Bạn có một chi nhánh với sửa lỗi - 5b

Bây giờ để sáp nhập sửa lỗi của bạn thay đổi to main,

kéo thay đổi mới nhất từ ​​chi nhánh chính:

git checkout main 
git pull origin main 

hợp nhất các thay đổi ở chi nhánh chính để 5b chi nhánh (chi nhánh 5b được cập nhật với chi nhánh chính):

git checkout 5b 
git pull origin 5b 
git merge main 
git push origin 5b 

nhập các thay đổi chi nhánh 5b của bạn trở lại chính:

git checkout main 
git merge 5b 
git push origin main 

này sẽ không xóa 5b của bạn (bug_fixes) chi nhánh hoặc chi nhánh chính. bạn có thể tiếp tục hợp nhất các sửa lỗi của mình với các thay đổi nhánh theo cách này.

+0

Điều này cũng sẽ thêm các thay đổi của tôi vào chi nhánh 5b không? Tôi không muốn giới thiệu tính năng này trong 5b vì điều này được sử dụng để gửi bản phát hành sửa lỗi mới cho khách hàng. Tính năng này chỉ dành cho một cấu trúc specif mà tôi chỉ muốn thêm tính năng này. –

+0

Tôi không rõ ràng. 'thay đổi của tôi' có ý nghĩa gì ở đây? Ý của bạn là 'thay đổi cục bộ trong chi nhánh 5b của bạn cũng được thêm vào nhánh chính'? –

+1

@VivekVDwivedi No. Hợp nhất 5b vào các thay đổi chính chỉ thay đổi chính, chứ không phải 5b. Hợp nhất là không đối xứng theo nghĩa đó. Trong ví dụ của bạn, 5b thường sẽ ở phía sau chính và bất cứ khi nào bạn thực hiện các thay đổi trong 5b, bạn sẽ hợp nhất chúng lại thành chính. –