Усі інші відповіді говорять про "вгору за течією" (гілку, з якої ви витягуєте).
Але місцева гілка може натиснути на іншу гілку, ніж ту, з якої вона витягується.
master
може не натиснути на гілку віддаленого відстеження " origin/master
". Вгору гілки для може бути , але це може підштовхнути до віддаленого трекінгу гілки або навіть .
Вони задаються для поточної гілки разом зі значенням.
master
origin/master
origin/xxx
anotherUpstreamRepo/yyy
branch.*.pushremote
global remote.pushDefault
Це що віддалене відстеження гілка , яка розраховує при пошуку unpushed фіксацій: той , який відстежує , branch at the remote
де місцеве відділення буде засунути на. Може бути, знову ж , або навіть .
branch at the remote
origin/xxx
anotherUpstreamRepo/yyy
Git 2.5+ (Q2 2015) представляє новий ярлик для цього: <branch>@{push}
Див здійснювати 29bc885 , здійснювати 3dbe9db , здійснює adfe5d0 , здійснює 48c5847 , здійснюють a1ad0eb , здійснює e291c75 , здійснює 979cb24 , здійснює 1ca41a1 , здійснює 3a429d0 , здійснюють a9f9f8c , здійснюють 8770e6f , здійснюють da66b27 , здійснює f052154 , здійснює 9e3751d , здійснює ee2499f [всі з 21 травня 2015], і виконувати e41bf35 [01 травня 2015] від Джеффа Кінга ( peff
) .
(Об’єднав Хуніо С Хамано -gitster
-в комітеті c4a8354 , 05 червня 2015 р.)
Коміт adfe5d0 пояснює:
sha1_name
: реалізувати @{push}
скорочення
У трикутному документообігу кожна гілка може мати дві окремі цікаві точки: ту, @{upstream}
яку ви зазвичай витягуєте, і пункт призначення, до якого ви зазвичай натискаєте. Не існує скорочення для останнього, але це корисно.
Наприклад, ви можете дізнатися, які комісії ви ще не натискали :
git log @{push}..
Або, як складніший приклад, уявіть, що ви зазвичай витягуєте зміни з origin/master
(які ви встановили як свої @{upstream}
), а зміни випробовуєте до власної особистої вилки (наприклад, як myfork/topic
).
Ви можете підштовхнути до розчеру з декількох машин, вимагаючи від вас інтегрувати зміни від місця призначення, а не вище за течією .
З цим патчем ви можете просто зробити:
git rebase @{push}
а не вводити повне ім’я.
Коміт 29bc885 додає:
for-each-ref
: прийняти %(push)
формат " "
Подібно до того, як ми маємо " %(upstream)
" повідомити " @{upstream}
" для кожної посилання, цей патч додає " %(push)
", щоб відповідати " @{push}
".
Він підтримує ті самі модифікатори формату відстеження, що і вище (тому, що ви, можливо, хочете знати, наприклад, які гілки зобов'язуються натиснути ).
Якщо ви хочете побачити, скільки ваших місцевих філій вперед / позаду, порівняно з гілкою, на яку ви натискаєте:
git for-each-ref --format="%(refname:short) %(push:track)" refs/heads
git log @{push}..
. Дивіться цю нову ярлик@{push}
(посилаючись на відділення віддаленого відстеження, на яке ви підштовхуєтесь) у моїй відповіді нижче