Prova questo nel tuo alicerepository (prima di spingere):
git config push.default tracking
Oppure, configuralo come predefinito per il tuo utente con git config --global ….
git pushfa per impostazione predefinita il originrepository (che normalmente è il repository da cui è stato clonato il repository corrente), ma per impostazione predefinita non esegue il push del ramo corrente, ma per impostazione predefinita spinge solo i rami esistenti sia nel repository di origine che nel repository di destinazione.
La push.defaultvariabile di configurazione (vedi git-config (1) ) controlla cosa git pushspingerà quando non viene dato alcun argomento "refspec" (cioè qualcosa dopo un nome di repository). Il valore predefinito indica il comportamento sopra descritto.
Ecco i possibili valori per push.default:
nothing
Questo ti costringe a fornire un "refspec".
matching(impostazione predefinita)
Spinge tutti i rami esistenti sia nel repository di origine che nel repository di destinazione.
Questo è completamente indipendente dal ramo che è attualmente estratto.
upstreamoppure tracking
(Entrambi i valori significano la stessa cosa. Il successivo è stato deprecato per evitare confusione con i rami di "monitoraggio remoto". Il primo è stato introdotto in 1.7.4.2, quindi dovrai usare il secondo se stai usando Git 1.7.3.1. )
Questi spingono il ramo corrente nel ramo specificato dalla sua configurazione "a monte".
current
In questo modo il ramo corrente viene spostato sul ramo con lo stesso nome nel repository di destinazione.
Questi ultimi due finiscono per essere gli stessi per i casi comuni (ad esempio lavorando su master locale che utilizza origin / master come upstream), ma sono diversi quando il ramo locale ha un nome diverso dal suo ramo “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
Con push.defaultuguale upstream(o tracking), la spinta sarebbe andato a origin's maestro ramo. Quando è uguale a current, la spinta sarebbe andare a origin's quickfix ramo.
L' matchingimpostazione aggiornerà bareil master nel tuo scenario una volta stabilito. Per stabilirlo, è possibile utilizzare git push origin masteruna volta.
Tuttavia, l' upstreamimpostazione (o forse current) sembra che potrebbe corrispondere meglio a ciò che ti aspetti, quindi potresti provare:
# 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
(Ancora una volta, se stai ancora usando un Git prima dell'1.7.4.2, dovrai usare trackinginvece di upstream).