Tất cả các câu trả lời khác nói về "ngược dòng" (nhánh bạn kéo từ).
Nhưng một nhánh địa phương có thể đẩy đến một nhánh khác với nhánh mà nó kéo ra.
master
có thể không đẩy đến nhánh theo dõi từ xa " origin/master
".
Các thượng nguồn chi nhánh cho master
có thể origin/master
, nhưng nó có thể đẩy đến chi nhánh theo dõi từ xa origin/xxx
hoặc thậm chí anotherUpstreamRepo/yyy
.
Chúng được đặt branch.*.pushremote
cho nhánh hiện tại cùng với global remote.pushDefault
giá trị.
Đó là rằng chi nhánh từ xa theo dõi mà đếm khi tìm kiếm các cam kết unpushed: một trong những bài hát mà các branch at the remote
nơi chi nhánh địa phương sẽ được đẩy lên.
Có branch at the remote
thể, một lần nữa, origin/xxx
hoặc thậm chíanotherUpstreamRepo/yyy
.
Git 2.5+ (Q2 2015) giới thiệu một lối tắt mới cho điều đó: <branch>@{push}
Xem cam kết 29bc885 , cam kết 3dbe9db , cam kết adfe5d0 , cam kết 48c5847 , cam kết a1ad0eb , cam kết e291c75 , cam kết 979cb24 , cam kết 1ca41a1 , cam kết 3a429d0 , cam kết a9f9f8c , cam kết 8770e6f , cam kết da66b27 , cam kết f052154 , cam kết 9e3751d , cam kết ee2499f [tất cả từ ngày 21 tháng 5 2015] và cam kết e41bf35 [01 tháng 5 năm 2015] bởi Jeff King ( peff
) .
(Được hợp nhất bởi Junio C Hamano - gitster
- trongcam kết c4a8354 , ngày 5 tháng 6 năm 2015)
Cam kết adfe5d0 giải thích:
sha1_name
: thực hiện tốc @{push}
ký
Trong quy trình làm việc hình tam giác, mỗi chi nhánh có thể có hai điểm quan tâm riêng biệt: điểm @{upstream}
mà bạn thường kéo từ và đích đến mà bạn thường đẩy tới. Không có một tốc ký cho cái sau, nhưng nó hữu ích để có.
Chẳng hạn, bạn có thể muốn biết những cam kết nào bạn chưa đẩy :
git log @{push}..
Hoặc như một ví dụ phức tạp hơn, hãy tưởng tượng rằng bạn thường lấy các thay đổi từ origin/master
(mà bạn đặt là của bạn @{upstream}
) và đẩy các thay đổi sang ngã ba cá nhân của riêng bạn (ví dụ: như myfork/topic
).
Bạn có thể đẩy tới ngã ba của mình từ nhiều máy, yêu cầu bạn tích hợp các thay đổi từ đích đẩy, thay vì ngược dòng .
Với bản vá này, bạn chỉ có thể làm:
git rebase @{push}
thay vì gõ tên đầy đủ.
Cam kết 29bc885 cho biết thêm:
for-each-ref
: chấp nhận %(push)
định dạng ""
Giống như chúng tôi có " %(upstream)
" để báo cáo " @{upstream}
" cho mỗi lần giới thiệu, bản vá này thêm " %(push)
" để khớp " @{push}
".
Nó hỗ trợ các công cụ sửa đổi định dạng theo dõi tương tự như ngược dòng (vì bạn có thể muốn biết, ví dụ, nhánh nào có cam kết đẩy ).
Nếu bạn muốn xem có bao nhiêu cam kết chi nhánh địa phương của bạn ở phía trước / phía sau so với chi nhánh bạn đang đẩy tới:
git for-each-ref --format="%(refname:short) %(push:track)" refs/heads
git log @{push}..
. Xem lối tắt mới đó@{push}
(tham khảo nhánh theo dõi từ xa mà bạn đang đẩy tới) trong câu trả lời của tôi dưới đây