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
Định kỳ:
λ git checkout dev
λ git pull origin dev
λ git checkout myfeaturebranch
λ git merge dev
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.
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
@DaBlick Cảm ơn, tôi đã cập nhật câu trả lời để bao gồm ghi chú này. –
- 1. Cập nhật chi nhánh địa phương với các thay đổi từ một chi nhánh được theo dõi từ xa
- 2. Cách dễ dàng hơn để giữ chi tiết tính năng git được cập nhật
- 3. Làm thế nào để chuyển đổi các nhánh trong nhật thực mà không thực hiện các thay đổi
- 4. Giữ thay đổi địa phương trong một repo git
- 5. làm thế nào để loại bỏ git thay đổi chi nhánh địa phương?
- 6. Git: Hủy tất cả thay đổi trên chi nhánh địa phương được phân tách
- 7. Trên chi nhánh địa phương, không muốn thực hiện thay đổi, nhưng cần phải chuyển sang một chi nhánh khác
- 8. Tạo chi nhánh git sau khi thay đổi đã được thực hiện để làm chủ
- 9. Làm thế nào để loại bỏ tất cả các thay đổi được thực hiện cho một chi nhánh?
- 10. thực hiện các thay đổi không được cam kết trên chi nhánh sai cho chi nhánh bên phải
- 11. Di chuyển các sửa đổi được thực hiện trong chi nhánh phát triển thành chi nhánh tính năng git-flow mới?
- 12. Chiến lược chi nhánh Git cho nhóm dev nhỏ
- 13. Git cho phép tôi chuyển đổi các chi nhánh mà không thực hiện các thay đổi
- 14. Chi nhánh Subversion/Thực hành tốt nhất Trunk - giữ Chi nhánh Cập nhật?
- 15. Làm cách nào để chạy nhật ký git chỉ xem các thay đổi cho một chi nhánh cụ thể?
- 16. Làm thế nào để có được một chi nhánh theo dõi từ xa để luôn được cập nhật với nguồn gốc từ xa trong một kho Git trống?
- 17. Các chi nhánh tính năng trong CVS?
- 18. Thay thế chi nhánh địa phương với chi nhánh ở xa hoàn toàn
- 19. git sáp nhập các thay đổi vào chi nhánh địa phương
- 20. Quy trình làm việc để giữ các phân đoạn phụ Mercurial được cập nhật khi các thay đổi được thực hiện trong dòng vô tính?
- 21. Cam kết thay đổi cho nhiều chi nhánh trong Git
- 22. Git - Chi nhánh chuyển đổi (cửa sổ) và các thay đổi không được sửa đổi
- 23. Làm thế nào để kết hợp tổng thể từ xa với chi nhánh địa phương
- 24. git log để chỉ trả lại các cam kết được thực hiện cho chi nhánh chính?
- 25. Git cập nhật submodule với một chi nhánh chưa được phân loại
- 26. git: làm cách nào để hợp nhất giữa các nhánh trong khi vẫn giữ một số thay đổi dành riêng cho một chi nhánh?
- 27. Làm thế nào để đẩy chi nhánh chủ địa phương của bạn đến Heroku khi bạn đã đẩy chi nhánh tính năng?
- 28. TFS: gửi các thay đổi được thực hiện cục bộ trong một chi nhánh đến một chi nhánh khác
- 29. Làm cách nào để cập nhật chi nhánh theo tên?
- 30. Làm thế nào để đóng một chi nhánh Git?
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
Đú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. –
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