Semua jawaban lain berbicara tentang "hulu" (cabang tempat Anda menarik).
Tetapi cabang lokal dapat mendorong ke cabang yang berbeda dari cabang yang ditariknya.
master
mungkin tidak mendorong ke cabang pelacakan jarak jauh " origin/master
".
The hulu cabang untuk master
mungkin origin/master
, tetapi bisa mendorong ke cabang pelacakan terpencil origin/xxx
atau bahkan anotherUpstreamRepo/yyy
.
Mereka ditetapkan oleh branch.*.pushremote
untuk cabang saat ini bersama dengan global remote.pushDefault
nilai.
Hal ini yang cabang terpencil-pelacakan jumlah yang ketika mencari komit unpushed: salah satu yang trek branch at the remote
di mana cabang lokal akan mendorong untuk.
The branch at the remote
bisa, sekali lagi, origin/xxx
atau bahkan anotherUpstreamRepo/yyy
.
Git 2.5+ (Q2 2015) memperkenalkan pintasan baru untuk itu: <branch>@{push}
Lihat komit 29bc885 , komit 3dbe9db , komit adfe5d0 , komit 48c5847 , komit a1ad0eb , komit e291c75 , komit 979cb24 , komit 1ca41a1 , komit 3a429d0 , komit a9f9f8c , komit 8770e6f , komit da66b27 , komit f052154 , komit 9e3751d , berkomitmen ee2499f [semua 21 Mei 2015], dan melakukan e41bf35 [01 Mei 2015] oleh Jeff King ( peff
) .
(Digabung oleh Junio C Hamano - gitster
-dalam komit c4a8354 , 05 Jun 2015)
Commit adfe5d0 menjelaskan:
sha1_name
: menerapkan @{push}
steno
Dalam alur kerja segitiga, masing-masing cabang mungkin memiliki dua tempat menarik: @{upstream}
yang biasanya Anda tarik, dan tujuan yang biasanya Anda dorong. Tidak ada singkatan untuk yang terakhir, tetapi berguna untuk memilikinya.
Misalnya, Anda mungkin ingin tahu komitmen mana yang belum Anda dorong :
git log @{push}..
Atau sebagai contoh yang lebih rumit, bayangkan bahwa Anda biasanya menarik perubahan dari origin/master
(yang Anda tetapkan sebagai Anda @{upstream}
), dan mendorong perubahan ke garpu pribadi Anda sendiri (misalnya, sebagai myfork/topic
).
Anda dapat mendorong ke fork Anda dari beberapa mesin, mengharuskan Anda untuk mengintegrasikan perubahan dari tujuan dorong, daripada hulu .
Dengan tambalan ini, Anda bisa melakukan:
git rebase @{push}
daripada mengetik nama lengkap.
Commit 29bc885 menambahkan:
for-each-ref
: terima %(push)
format " "
Sama seperti kita " %(upstream)
" harus melaporkan " @{upstream}
" untuk setiap referensi, tambalan ini menambahkan " %(push)
" untuk mencocokkan " @{push}
".
Ini mendukung pengubah format pelacakan yang sama dengan upstream (karena Anda mungkin ingin tahu, misalnya, cabang mana yang berkomitmen untuk mendorong ).
Jika Anda ingin melihat berapa banyak komit cabang lokal Anda di depan / belakang dibandingkan dengan cabang yang Anda dorong untuk:
git for-each-ref --format="%(refname:short) %(push:track)" refs/heads
git log @{push}..
. Lihat pintasan baru itu@{push}
(merujuk cabang pelacak jarak jauh yang Anda dorong) dalam jawaban saya