Prova questo nel tuo alice
repository (prima di spingere):
git config push.default tracking
Oppure, configuralo come predefinito per il tuo utente con git config --global …
.
git push
fa per impostazione predefinita il origin
repository (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.default
variabile di configurazione (vedi git-config (1) ) controlla cosa git push
spingerà 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.
upstream
oppure 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.default
uguale 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' matching
impostazione aggiornerà bare
il master nel tuo scenario una volta stabilito. Per stabilirlo, è possibile utilizzare git push origin master
una volta.
Tuttavia, l' upstream
impostazione (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 tracking
invece di upstream
).