Come posso spingere un nuovo ramo locale su un repository Git remoto e tracciarlo?
Voglio essere in grado di fare quanto segue:
-
Creare un ramo locale basato su qualche altro ramo (remoto o locale) (tramite
git branch
ogit checkout -b
) -
Spingere il ramo locale al repository remoto (publish), ma rendilo tracciabile in modo che
git pull
egit push
funzionino immediatamente.
Come faccio?
So di --set-upstream
in Git 1.7, ma è un'azione post-creazione. Voglio trovare un modo per fare un cambiamento simile quando si spinge il ramo al repository remoto.
4141
3
Prima dell'introduzione di
git push -u
, non c'era un'opzionegit push
per ottenere ciò che si desidera. Dovevi aggiungere nuove dichiarazioni di configurazione.Se si crea un nuovo ramo usando:
Puoi usare il comando
git config
per evitare di modificare direttamente il file.git/config
.Oppure puoi modificare manualmente il file
.git/config
per avere informazioni di tracciamento su questo ramo.Suppongo che abbiate già clonato un progetto come:
Poi nella tua copia locale, crea un nuovo ramo e controllalo:
Supponendo che tu abbia fatto un "git bare --init" sul tuo server e creato il myapp.git, dovresti:
Dopo questo, gli utenti dovrebbero essere in grado di
NOTA: Sto assumendo che tu abbia il tuo server attivo e funzionante. Se non lo è, non funzionerà. Un buon how-to è qui.
AGGIUNGI
ADDED
Aggiungere un ramo remoto:
Controlla se tutto è a posto (recupera l'origine e elenca i rami remoti):
Crea un ramo locale e traccia il ramo remoto:
Aggiorna tutto:
edit Superato, basta usare
git push -u origin $BRANCHNAME
.Usare
git publish-branch
da William's miscellaneous Git tools (gitorious repo e clone).OK, niente Ruby, quindi - ignorando le protezioni! - prendete le ultime tre righe dello script e create uno script bash,
git-publish-branch
:Poi esegui
git-publish-branch REMOTENAME BRANCHNAME
, dove REMOTENAME è solitamente origin (puoi modificare lo script per prendere origin come default, ecc...)