Làm thế nào tôi có thể giữ chi nhánh của mình cập nhật với chủ với git?


126

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 làm tôi sử dụng không?

Câu trả lời:


172

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.


5
Và điều này chỉ thêm các thay đổi từ chủ của tôi vào chi nhánh của tôi và để chủ một mình, đúng không?
Nic Hubbard

3
@Nic - Điều này sẽ mang lại tất cả các cam kết từ chủ, không chỉ là sửa lỗi. Hãy chắc chắn nếu đây là những gì bạn muốn làm.
manojlds

12
@Nic - Chính xác, điều này không sửa đổi chủ.
John Doty

16
Có thể tốt để giới thiệu một "git checkout master; git pull" ban đầu để đảm bảo rằng nhánh chính cục bộ được cập nhật. Thường rõ ràng, nhưng ...
MikeW

Là một phím tắt kiểm tra / hợp nhất chính, bạn có thể thực hiện một "git pull origin master" để kéo master server / merge vào nhánh thanh toán cục bộ không?
dùng1172173

66

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

18
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ủ.
Chetan

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 qua git svnquathththth thì đó git rebase masterlà cách để đi, để giữ một lịch sử tuyến tính, đó là những gì svn hiểu.
alondono 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

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?
Prasith Govin

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ử.
Gauthier

0

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.