2013-08-29 30 views
8

Tôi đã làm theo hướng dẫn này để làm việc với các dự án phân phối git: http://nvie.com/posts/a-successful-git-branching-model/. Nó đã làm việc tốt nhưng bây giờ tôi đã chạy vào một snag. Tôi đã tạo một chi nhánh tính năng địa phương. Tôi muốn giữ cho chi tiết tính năng này được cập nhật với những thay đổi mới nhất được thực hiện trong dev. Điều này có thể không? Tôi đã nghiên cứu điều này và thấy rằng tôi có thể sẽ cần phải sử dụng rebase. Nhưng có rất nhiều lựa chọn tôi không biết chính xác cái nào tôi cần sử dụng. Làm thế nào tôi sẽ làm điều này?Git: Làm thế nào để giữ cho chi nhánh tính năng địa phương được cập nhật với các thay đổi được thực hiện trong dev?

Trả lời

9

Định kỳ:

λ git checkout dev 
λ git pull origin dev 
λ git checkout myfeaturebranch 
λ git merge dev 
+0

Vì vậy, khi đến lúc hợp nhất chi nhánh tính năng của tôi lại thành 'dev', tôi không phải lo lắng về bất kỳ xung đột hợp nhất nào? – Jeff

+0

Đúng, mặc dù sự cân bằng là phải giải quyết xung đột hợp nhất trong bước 'git merge dev' ở trên. –

+0

Có bất kỳ lợi ích nào khi thực hiện theo cách này trái ngược với việc rebasing được đề xuất bởi Derek S không? – Jeff

5

Chạy git rebase dev trong khi trên nhánh tính năng nên thực hiện thủ thuật (cập nhật địa phương dev từ nguồn gốc trước tiên, nếu cần).

Điều đó sẽ phát lại các thay đổi của bạn từ nhánh đối tượng trên dev, sau đó đặt đầu tính năng làm người đứng đầu lịch sử mới.

Lưu ý: Chỉ rebase nếu cam kết chi nhánh tính năng của bạn chưa được đẩy. Nó sẽ viết lại lịch sử của bạn. Có một số cảnh báo với rebase có thể có hoặc không có giá trị rủi ro.

+4

Tôi nghĩ rằng đây là cách tốt hơn để làm điều đó, nhưng bạn chỉ nên làm điều đó nếu tính năng cam kết chi nhánh của bạn đã KHÔNG được đẩy. Đó là điều mà tài liệu git nói. – DaBlick

+0

@DaBlick Cảm ơn, tôi đã cập nhật câu trả lời để bao gồm ghi chú này. –

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