Git đẩy -u có nghĩa là gì?


323

Tôi có hai phiên bản khác nhau của git. Trong phiên bản 1.6.2, git pushkhông có -utùy chọn. Nó chỉ xuất hiện trong phiên bản 1.7.x.

Từ các tài liệu, -uliên quan đến biến

branch.<name>.merge

trong git config. Biến này được mô tả dưới đây:

Defines, together with branch.<name>.remote, the upstream branch 
for the given branch. It tells git fetch/git pull which branch to merge.

Chi nhánh thượng nguồn là gì?


Câu trả lời:


360

"Thượng nguồn" sẽ đề cập đến repo chính mà người khác sẽ rút ra, ví dụ như repo GitHub của bạn. Tùy chọn -u tự động đặt ngược dòng cho bạn, liên kết repo của bạn với một trung tâm. Bằng cách đó, trong tương lai, Git "biết" nơi bạn muốn đẩy đến và nơi bạn muốn kéo đến, để bạn có thể sử dụng git pullhoặc git pushkhông có đối số. Một chút xuống, bài viết này giải thích và chứng minh khái niệm này.


19
Tôi thấy rằng bài viết bạn đã liên kết để chỉ ra điều này, nhưng vì nó là một vấn đề của Gotcha, tôi nghĩ rằng đáng để chỉ ra rằng nhánh được đẩy đến git push không bị ảnh hưởng bởi cấu hình nhánh ngược dòng trừ khi bạn đã push.defaultđặt đến tracking(hoặc upstreamtrong các phiên bản sau của git).
Mark Longair

tôi không hiểu tại sao nhật thực cung cấp cả hai sau đó?
HaveAGuess

23
@HaveAGuess Có lẽ vì lý do tương tự mà Eclipse cũng mang đến cả sự khốn khổ và tuyệt vọng.
twiz

9

Điều này không còn được cập nhật!

Push.default is unset; its implicit value has changed in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the traditional behavior, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

1
Nhưng hiện tại cờ -ugì? GitHub vẫn khuyến nghị sử dụng cờ này khi chúng tôi tạo một repo mới ...
Jean Paul

8
@JeanPaul - Tùy chọn -u thực hiện như sau: Đối với mọi nhánh được cập nhật hoặc được đẩy thành công, hãy thêm tham chiếu ngược dòng (theo dõi), được sử dụng bởi git-pull không có đối số và các lệnh khác. Vì vậy, sau khi đẩy nhánh cục bộ của bạn bằng tùy chọn -u, nhánh cục bộ này sẽ được tự động liên kết với nhánh từ xa và bạn có thể sử dụng git pull mà không có bất kỳ đối số nào.
Peter Piper
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.