2013-08-02 20 views
26

Tôi đã tìm thấy chính mình trong tình huống này một vài lần gần đây, và tôi không hoàn toàn chắc chắn cách tốt nhất để xử lý nó.Tiếp tục làm việc trên chi nhánh Git sau khi thực hiện yêu cầu kéo

Vì vậy, tôi có một nhánh của kho lưu trữ git mà tôi đang đóng góp. Tôi giữ nhánh master của tôi được đồng bộ với nhánh chủ thượng nguồn.

Khi tôi muốn làm việc trên một tính năng mới, sửa lỗi, vv, tôi tạo một chi nhánh từ chủ của tôi và thực hiện bất kỳ công việc nào. Khi tôi hoàn tất, tôi hợp nhất bất kỳ thay đổi nào đã được thực hiện cho luồng chủ ở thời điểm chờ đợi và sau đó gửi yêu cầu kéo từ nhánh tính năng/bugfix của tôi tới máy chủ ngược dòng.

Bây giờ, trong khi chờ đợi yêu cầu kéo được chấp nhận, tôi muốn làm việc trên một cái gì đó hơi khác. Tuy nhiên, công việc tính năng mới cần tính năng sửa lỗi/mới mà tôi vừa gửi yêu cầu kéo. Tôi cần phải xây dựng trên đó.

Làm cách nào để phân nhánh/hợp nhất/xử lý các chi nhánh theo cách mà tôi có thể làm việc liên tục, trong khi vẫn có thể hợp nhất/kéo yêu cầu trong các thay đổi của tôi một cách rõ ràng sau khi yêu cầu kéo đầu tiên được chấp nhận ?

Đây là tất cả bằng cách sử dụng Github, mặc dù tôi tưởng tượng câu trả lời sẽ được áp dụng cho Git nói chung.

Trả lời

10

tạo chi nhánh mới (feature2) dựa trên cam kết cuối cùng đối với feature1. feature1 sẽ không chuyển tiếp thêm nữa và có thể được hợp nhất. feature2 sau đó có thể được sáp nhập sau đó (một số người sẽ tranh luận để rebase feature2 trên cam kết nơi feature1 được sáp nhập vào thượng nguồn, nhưng cá nhân tôi không thích rebasing).

+0

Vì vậy, nếu tính năng 1 được sáp nhập vào chính, sẽ không có vấn đề xung đột nếu sau này tôi hợp nhất tính năng 2 (dựa trên tính năng 1) thành chính? –

+1

@IsaacDontjeLindell thực tế là feature2 dựa trên feature1 sẽ không giới thiệu thêm xung đột, không. có thể có xung đột tất nhiên, nhưng chúng sẽ không liên quan đến thực tế là nó dựa trên feature1. cũng vậy, nếu feature1 bị từ chối, tính năng hợp nhất 2 sẽ kéo nó lại, trừ khi bạn rebase feature2 trước. – mnagel

+0

@IsaacDontjeLindell tip: bạn có thể thử tất cả điều này với một bản sao cục bộ mà bạn xóa sau khi thử nghiệm. – mnagel

-2

Tôi đã gặp vấn đề tương tự vào tuần trước. Tôi chạy trên trang web này đã giúp tôi rất nhiều. Tôi hy vọng nó cũng giúp ích cho bạn. Tôi chỉ phải thực hiện một vài bản sửa lỗi kỳ lạ nhưng chúng hiển thị dễ dàng. http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging

+1

Cảm ơn câu trả lời. Tôi đã thực sự đã đọc nó - đó là một giới thiệu tốt về hợp nhất cơ bản, nhưng nó không thực sự trả lời câu hỏi của tôi: kéo yêu cầu. –