2012-06-30 46 views
53

Tôi có chi nhánh địa phương có tên 'my_local_branch', theo dõi chi nhánh từ xa origin/my_remote_branch.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

Hiện tại, chi nhánh từ xa đã được cập nhật và tôi đang ở trên 'my_local_branch' và muốn thực hiện các thay đổi đó. Tôi có nên làm:

git pull origin my_remote_branch:my_local_branch 

Đây có phải là cách chính xác không?

Trả lời

44

Bạn đã thiết lập các thượng lưu mà chi nhánh

(xem:

 
git branch -f --track my_local_branch origin/my_remote_branch 
# OR (if my_local_branch is currently checked out): 
$ git branch --set-upstream-to my_local_branch origin/my_remote_branch 

(git branch -f --track won không hoạt động nếu b trang trại được kiểm tra ra: sử dụng lệnh thứ hai git branch --set-upstream thay vào đó, hoặc bạn sẽ nhận được "fatal: Cannot force update the current branch.")

Điều đó có nghĩa chi nhánh của bạn là already configured với:

branch.my_local_branch.remote origin 
branch.my_local_branch.merge my_remote_branch 

Git đã có tất cả các thông tin cần thiết.
Trong trường hợp đó:

# if you weren't already on my_local_branch branch: 
git checkout my_local_branch 
# then: 
git pull 

là đủ.


Nếu bạn đã không thiết lập mối quan hệ chi nhánh thượng nguồn khi nó đến để đẩy bạn 'my_local_branch', sau đó một đơn giản git push -u origin my_local_branch:my_remote_branch sẽ là đủ để đẩy thiết lập các chi nhánh thượng nguồn.
Sau đó, đối với các lần kéo/đẩy tiếp theo, git pull hoặc git push sẽ, một lần nữa, là đủ.

+0

OP đề cập rằng họ đã theo dõi nhánh từ xa. – Amber

+3

@Amber vì thế câu trả lời của tôi: 'git pull' là đủ. – VonC

+0

Lệnh đầu tiên 'git branch -f --track master origin/master' trả về lỗi:' fatal: Không thể bắt buộc cập nhật nhánh hiện tại.' –

39

Bạn không sử dụng cú pháp : - pull luôn sửa đổi chi nhánh hiện đã thanh toán. Do đó:

git pull origin my_remote_branch 

khi bạn có my_local_branch kiểm tra sẽ thực hiện những gì bạn muốn.

Vì bạn đã có các thiết lập chi nhánh theo dõi, bạn thậm chí không cần phải xác định - bạn chỉ có thể làm ...

git pull 

trong khi bạn có my_local_branch kiểm tra ra, và nó sẽ cập nhật từ theo dõi chi nhánh.

+0

Giải pháp đơn giản này làm việc cho tôi. – pratyush

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