команда для получения эффективного push-сообщения для филиала, например, master, имеет вид:
git config branch.master.pushRemote || git config remote.pushDefault || git config branch.master.remote
Вот почему (из вывода "man git config"):
branch.name.remote [...] сообщает git fetch и git push, какой удаленный выбор из / push to [...] [для push] может быть переопределен с помощью remote.pushDefault (для всех ветвей) [и] для текущей ветки [..], дополнительно переопределено branch.name.pushRemote [...]
По какой-то причине "man git push" только говорит о branch.name.remote (даже если он имеет наименьший приоритет из трех) + ошибочно заявляет, что если он не установлен, push по умолчанию устанавливается на origin - он не просто, когда вы клонируете репозиторий, branch.name.remote устанавливается в origin, но если вы удалите этот параметр, git push не будет работать, даже если у вас все еще есть удаленный источник