Tente isso em seu alicerepositório (antes de pressionar):
git config push.default tracking
Ou configure-o como o padrão para o seu usuário git config --global ….
git pushusa como padrão o originrepositório (que normalmente é o repositório do qual você clonou o repositório atual), mas não usa como padrão o envio da ramificação atual - o padrão é enviar apenas as ramificações existentes no repositório de origem e no repositório de destino.
A push.defaultvariável de configuração (consulte git-config (1) ) controla o que git pushserá enviado quando não houver argumentos "refspec" (isto é, algo após o nome de um repositório). O valor padrão fornece o comportamento descrito acima.
Aqui estão os valores possíveis para push.default:
nothing
Isso força você a fornecer um "refspec".
matching(o padrão)
Isso empurra todas as ramificações que existem no repositório de origem e no repositório de destino.
Isso é completamente independente da ramificação que está atualmente com check-out.
upstreamou tracking
(Ambos os valores significam a mesma coisa. O último foi descontinuado para evitar confusão com as ramificações de "rastreamento remoto". O primeiro foi introduzido no 1.7.4.2, portanto você precisará usá-lo se estiver usando o Git 1.7.3.1. )
Eles enviam a ramificação atual para a ramificação especificada por sua configuração "upstream".
current
Isso envia a ramificação atual para a ramificação com o mesmo nome no repositório de destino.
Esses dois últimos acabam sendo os mesmos para casos comuns (por exemplo, trabalhando no mestre local que usa origem / mestre como upstream), mas são diferentes quando a ramificação local tem um nome diferente de sua ramificação "upstream":
git checkout master
# hack, commit, hack, commit
# bug report comes in, we want a fix on master without the above commits
git checkout -b quickfix origin/master # "upstream" is master on origin
# fix, commit
git push
Com push.defaultigual a upstream(ou tracking), o push iria para origino ramo principal de . Quando é igual a current, o push iria para origina ramificação do quickfix .
A matchingconfiguração atualizará bareo mestre do seu cenário, uma vez estabelecido. Para estabelecê-lo, você pode usar git push origin masteruma vez.
No entanto, a upstreamconfiguração (ou talvez current) parece ser uma correspondência melhor para o que você espera que aconteça; portanto, tente:
# try it once (in Git 1.7.2 and later)
git -c push.default=upstream push
# configure it for only this repository
git config push.default upstream
# configure it for all repositories that do not override it themselves
git config --global push.default upstream
(Novamente, se você ainda estiver usando um Git antes da 1.7.4.2, precisará usar em trackingvez de upstream).