Con GitHub come faccio a eseguire il push di tutti i rami quando aggiungo un repository esistente?


125

Ho creato un nuovo repository GitHub: voglio inserire il mio repository esistente lì.
Ho seguito le istruzioni:

cd existing_git_repo
git remote add origin git@github.com:acme-org/myprj.git
git push origin master

Questo spinge solo il ramo master a GitHub.
Come faccio a eseguire il push di tutto (inclusi tutti i rami) nel mio repository esistente nel mio nuovo repository GitHub?


Nota: hai anche git push --follow-tagscon git 1.8.3+ (maggio 2013). Vedi la mia risposta modificata di seguito
VonC

Risposte:


237

Nota: git push --all non invierà i tuoi tag, solo i tuoi rami.

git push --all
git push --tags

spingerebbe davvero tutto . Vedi anche " Configurare git per tirare e spingere tutti i rami ".
Non dimenticare l' --dry-runopzione di fare qualche test prima di spingere effettivamente tutto.
Vedi anche la guida di GitHub " Lavorare con i telecomandi " per impostare l'origine sul repository remoto di GitHub.


Come menzionato in " Come fare in modo che" git push "includa tag all'interno di un ramo? ", Git 1.8.3+ (maggio 2013) ha introdotto:

git push --follow-tags

Questo non spingerà tutti i tag, ma solo quelli accessibili dal ramo (i) HEAD (i) che stai spingendo.

Ciò può aiutare a mantenere quell'operazione (push commit e tag) eseguita con un comando invece di due.

Git 2.4.1+ (Q2 2015) introdurrà l'opzione push.followTags.


Questo sembra non funzionare quando si desidera eseguire il push su un altro telecomando (invece dell'origine), spinge solo il mio ramo corrente.
Aloys

@Aloys che dipendere dalla versione git e policy di default attuale spinta: stackoverflow.com/questions/10002239/...
VonC

Se vuoi spingere anche le filiali remote usa--mirror
BFar

18

La risposta accettata non è del tutto corretta, o almeno non ha funzionato per me. Avevo bisogno di specificare anche il repository remoto, ad esempio:

git push origin --all

Specificare il telecomando è necessario solo quando l'upstream non è impostato.
arriverà il

repository richiesto se sono stati aggiunti più telecomandi, credo ( $git remote -v)
michael

2
Per impostare il tracciamento tra i rami locale e remoto si può aggiungere -u:git push -u origin --all
Drenai
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.