Обновление 2015
Мой первоначальный ответ ниже не идеален, так как ветвь вверх по течению не обязательно является ветвью, на которую вы нажимаете.Это только та ветка, из которой вы тянете.
С Git 2.5+ правильная команда:
git for-each-ref --format="%(refname:short) %(upstream:track)" refs/heads
Подробнее см. " Просмотр невыгруженных коммитов Git ".
(как указано void.pointer в в комментариях , upstream:track
точнее, чем push:track
, в зависимости от толчка по умолчанию policy )
В Git 2.13 (2-й квартал 2017 г.) используется более общий API ref-filter с более полным git for-each-ref push
:
См. коммит 3d9e4ce , коммит 949af06 , коммит 56b4360 , коммит 6eac70f , коммит 1a34728 , коммит 1a0ca5e , commit 3a42980 , commit 17938f1 , commit 3ba308c , commit a798410 , commit b180e6f , commit 01f9582 , commit 7743fcc , commit ffd921d , commit 99c6a71 , commit d4919bb , commit 42d0eb0 , commit 4f3e3b3 , commit c58fc85 (10 января 2017 г.) Картик Наяк (KarthikNayak
) .
(объединено Junio C Hamano - gitster
- в commit 93e8cd8 , 27 февраля 2017 г.)
push:
Имя локального ref, представляющего @{push}
расположение для отображаемого ref.
Respect :short
, :lstrip
, :rstrip
, :track
и :trackshort
, как upstream
.
Создает пустую строку, если не настроено @{push}
ref.
Если lstrip=<N>
(rstrip=<N>
) добавляется, разделяет <N>
компоненты пути, разделенные косой чертой, с передней (задней) части refname
(например, %(refname:lstrip=2)
превращает refs/tags/foo
в foo
и %(refname:rstrip=2)
превращается refs/tags/foo
в refs
).
Если <N>
- отрицательное число, удалите столько компонентов пути, сколько необходимо, с указанного конца, чтобы оставить -<N>
компонентов пути
(например, %(refname:lstrip=-2)
повороты refs/tags/foo
в tags/foo
и %(refname:rstrip=-1)
превращает refs/tags/foo
в refs
)
Оригинальный ответ (2014)
Другой способ будет доступен с Git 1.9 /2/0 (1 квартал 2014 года).
См. commit b28061c из Рамкумар Рамачандра (артаньон) :
for-each-ref
: ввести %(upstream:track[short])
Ввести:
%(upstream:track)
для отображения «[ahead M, behind N]
» и %(upstream:trackshort)
для отображения «=
», «>
», «<
» или «<>
» соответственно (вдохновленныйcontrib/completion/git-prompt.sh
).
Теперь вы можете использовать следующий формат для for-each-ref:
%(refname:short) %(upstream:trackshort)
для отображения ссылок с краткой информацией отслеживания.
Обратите внимание, что :track
и :trackshort
работают только с "upstream
", и выдает ошибку при использовании с чем-либо еще.