Я не верю, что для этого есть встроенная команда. Тем не менее, вы можете сделать что-то вроде этого:
#!/bin/bash
head=$(git symbolic-ref HEAD) || exit
head=${head#refs/heads/}
merge=$(git config --get branch.$head.merge) || { echo "no tracking branch"; exit 1; }
remote=$(git config --get branch.$head.remote) || remote=origin
git merge $remote/${merge#refs/heads/}
# alternatively, as in Aristotle's answer:
# head=$(git symbolic-ref HEAD) || exit
# upstream=$(git for-each-ref --format='%(upstream:short)' "$head"
# [ -z "$upstream" ] && { echo "no tracking branch"; exit 1; }
# git merge $upstream
Я думаю, что я достаточно хорошо охватил свои базы - он выходит со статусом сбоя, если находится в отключенном состоянии HEAD, или если текущая ветвь не имеет ветки отслеживания. По умолчанию используется значение origin, как и обычные команды передачи git. (Что-то странное случится, если вы попытаетесь использовать это в ветке, которая отслеживает что-то, кроме ветки на удаленном компьютере, то есть не в форме refs /head / *, но это кажется маловероятным.) Не похоже на самом деле сэкономит вам много времени, но вот вы!
Если вы хотите использовать его, просто сохраните его где-нибудь и присвойте ему псевдоним, или назовите его git-нечто и поместите в свой путь.