Sự khác nhau giữa git pull origin master & git pull origin / master


283

Sự khác biệt giữa git pull origin mastervà là git pull origin/mastergì?


1
bình tĩnh khá nhiều có nó được bảo hiểm, nhưng câu trả lời không phải là bạn không bao giờ làm git pull origin/master. Nếu bạn muốn hợp nhất nhánh từ xa [được lưu trữ cục bộ] origin/master, chỉ cần sử dụng git merge origin/master.
Cascabel

3
@Jefromi: Bạn có thể giải thích tại sao luôn luôn tốt hơn khi thực hiện git merge so với git pull không?
Rachel

16
git pullcó nghĩa là git fetchtheo sau git merge. Nó tìm nạp nội dung từ xa, sau đó hợp nhất nó vào nhánh hiện tại của bạn. Nhưng origin/masterlà một chi nhánh địa phương (theo dõi một chi nhánh từ xa). Nếu bạn muốn hợp nhất nó, bạn không cần phải lấy bất cứ thứ gì. Thật sai lầm git pull origin/masterkhi nói rằng bạn không thực sự tìm nạp từ xa.
Cascabel

Cảm ơn Jefromi cho các thông tin hữu ích. Nó thực sự giúp để hiểu khá dễ dàng khái niệm không dễ dàng như vậy.
Rachel

Đối với những người đọc nó và vẫn còn nhầm lẫn, origin/masterlà một nhánh được lưu trữ cục bộ lưu trữ nhánh chính ở điều khiển gốc.
iheanyi

Câu trả lời:


354

git pull origin mastersẽ kéo các thay đổi từ originđiều khiển từ xa, masterchi nhánh và hợp nhất chúng với chi nhánh thanh toán cục bộ.

git pull origin/mastersẽ kéo các thay đổi từ nhánh được lưu trữ cục bộ origin/mastervà hợp nhất nó với nhánh thanh toán cục bộ. Các origin/masterchi nhánh chủ yếu là một "bản sao cache" của những gì đã kéo cuối cùng từ origin, đó là lý do tại sao nó được gọi là một chi nhánh từ xa theo cách nói git. Điều này có thể hơi khó hiểu.

Bạn có thể xem những nhánh nào có sẵn git branchgit branch -rđể xem "các nhánh từ xa".


1
trong trường hợp git pull origin masternó sẽ luôn hợp nhất với nhánh chính, giả sử là trên một nhánh khác trong repo của tôi và sau đó đang thực hiện lệnh trên, nó sẽ cập nhật nhánh hiện tại của tôi với các thay đổi từ xa gốc hoặc nhánh chính của tôi với các thay đổi?
Rachel

4
@calmh: git merge(và do đó git pull) luôn hợp nhất vào nhánh hiện tại. Để hợp nhất với một cái gì đó không phải là chi nhánh hiện tại của bạn, chỉ cần kiểm tra nó trước.
Cascabel

2
ừm .. Tôi không thấy 'origin / master' khác với 'master master' như thế nào; Họ đều là chi nhánh chính về nguồn gốc. Bạn thực sự có thể đưa ra một ví dụ về khi chúng sẽ khác nhau?
hasen

69
git pull origin/mastercó thể là một lệnh hợp lệ khi nó được viết, nhưng ngày nay (git 1.7.10.3) nó không thành công với fatal: 'origin/master' does not appear to be a git repository(vì nó nên - pull luôn luôn là để lấy từ xa).
user1338062

3
Tại sao git rất khó hiểu? Vậy chúng ta có 4 kho hoàn toàn, đúng không? Có (1) kho lưu trữ từ xa, (2) kho lưu trữ cục bộ, (3) kho lưu trữ theo giai đoạn, (4) kho lưu trữ cục bộ từ xa aka origin / master? Tại sao git có kho lưu trữ số 4?
Mugen

3

git pull origin mastersẽ tìm nạp tất cả các thay đổi từ nhánh chính của điều khiển từ xa và sẽ hợp nhất nó vào địa phương của bạn. Chúng tôi thường không sử dụng git pull origin / master. Chúng tôi có thể làm điều tương tự bằng cách git merge origin/master. Nó sẽ hợp nhất tất cả các thay đổi từ "bản sao được lưu trong bộ nhớ cache" của nhánh chính của origin thành nhánh cục bộ của bạn. Trong trường hợp của tôi git pull origin/masterlà lỗi.


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.