112

Tôi có một bản sửa lỗi trong chủ của mình và tôi cũng muốn chi nhánh của mình sửa lỗi đó. Có gì gitlệnh nào để tôi sử dụng không?

|
151

Giả sử bạn ổn với việc thực hiện tất cả các thay đổi trong tổng thể, điều bạn muốn là:

git checkout <my branch>

để chuyển cây làm việc sang chi nhánh của bạn; sau đó:

git merge master

để hợp nhất tất cả các thay đổi trong tổng thể với chủ của bạn.

|
57

Nếu chi nhánh của bạn chỉ ở địa phương và chưa được đẩy đến máy chủ, hãy sử dụng

git rebase master

Nếu không, sử dụng

git merge master
|
  • 1

    Tại sao rebase chỉ hoạt động khi nó là một chi nhánh địa phương?

    – Trịnh Minh Thông 21:27:58 02/08/2011
  • 1

    Bởi vì nó sửa đổi lịch sử cam kết và bạn không muốn đẩy lịch sử tìm kiếm đã sửa đổi lên máy chủ.

    – Hồ Yến Ðan 00:05:28 03/08/2011
  • 1

    Nếu bạn đang sử dụng một kho lưu trữ svn làm kho lưu trữ từ xa của bạn thông qua git svnviệc tìm kiếm, git rebase masterthì đó là cách để đi, để giữ một lịch sử tuyến tính, đó là những gì svn hiểu.

    – Phan Nga 06:31:40 18/03/2015
15

Bạn có thể sử dụng cherry-pick để nhận (các) cam kết sửa lỗi cụ thể

$ git checkout branch
$ git cherry-pick bugfix
|
  • 1

    cherry-pick chỉ hoạt động nếu bugfix là một nhánh được sáp nhập trở lại thành master?

    – Trần Tần 14:54:30 09/05/2013
  • 1

    Bạn có thể chọn cherry, nhưng sau khi hợp nhất nhánh thành master (khi nhánh sẵn sàng), bạn sẽ có cam kết sửa lỗi hai lần trong lịch sử.

    – Bùi Quang Thuận 08:45:46 27/02/2015
0

Nếu bạn chỉ muốn sửa lỗi được tích hợp vào chi nhánh, git cherry-pick(các) cam kết có liên quan.

|

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.