Как можно ссылаться на псевдоним git для выполнения операции в эквивалентной ветки отслеживания в удаленном репозитории, называемом "origin"? Например, если я нахожусь в ветке "foo" моего локального репо, и я хочу запустить команду, которая обычно по умолчанию относится к моей ветке "origin/foo", как я могу это сделать?
Вот конкретный пример:
Я хочу видеть входящие коммиты из ветки "origin/foo", и я нахожусь в своей локальной ветке "foo". Для этого я бы выполнил git fetch && git log --pretty=oneline --abbrev-commit ..origin/foo
. Таким образом, я создал псевдоним git incoming
следующим образом:
[alias]
incoming = !git fetch && git log --pretty=oneline --abbrev-commit [email protected]{u}
Однако этот псевдоним интерпретируется как git fetch && git log --pretty=oneline --abbrev-commit ..upstream/foo
, где @{u}
является заменой эквивалентной ветки на удаленном пульте. Я хочу выполнить ту же команду, но на эквивалентной ветке на удаленном сервере origin. Как я могу это сделать? Я пробовал @{o}
, но это не работает, и я не могу найти этот синтаксис в любом месте документа git alias. Я получил ответ от комментария @sschuberth в этом ответе, но в противном случае я не нашел много документации.
Обновление Я нашел близкое решение, но вместо аргумента git использует аргумент bash:
incoming = !git fetch && git log --pretty=oneline --abbrev-commit ..$1
Недостатком является то, что я не могу использовать автозаполнение, предоставляемое git, и оно не сравнивает мою локальную ветвь с удаленным репозиторием origin
.