Jak za pomocą GitHub wypchnąć wszystkie gałęzie podczas dodawania istniejącego repozytorium?

125

Utworzyłem nowe repozytorium GitHub - chcę tam umieścić moje istniejące repozytorium.
Postępowałem zgodnie z instrukcjami:

cd existing_git_repo
git remote add origin [email protected]:acme-org/myprj.git
git push origin master

To tylko wypycha gałąź główną do GitHub.
Jak przesłać wszystko (w tym wszystkie gałęzie) z mojego istniejącego repozytorium do nowego repozytorium GitHub?

facet
źródło
Uwaga: masz również git push --follow-tagsgit 1.8.3+ (maj 2013). Zobacz moją zredagowaną odpowiedź poniżej
VonC

Odpowiedzi:

237

Uwaga: git push - nie wszystkie Twoje tagi, tylko gałęzie.

git push --all
git push --tags

naprawdę popchnąłby wszystko . Zobacz także „ Konfigurowanie gita do ściągania i wypychania wszystkich gałęzi ”.
Nie zapomnij o --dry-runopcji wykonania testu, zanim wszystko zostanie przesłane.
Zobacz także Pomoc GitHub „ Praca z pilotami ”, aby ustawić źródło dla zdalnego repozytorium GitHub.


Jak wspomniano w artykule „ Jak sprawić, by„ git push ”zawierało tagi w gałęzi? ”, Wprowadzono w git 1.8.3+ (maj 2013):

git push --follow-tags

Nie spowoduje to wypchnięcia wszystkich tagów, ale tylko tych dostępnych z gałęzi (y) HEAD (y), które pchasz.

Może to pomóc w utrzymaniu tej operacji (wypychanie zatwierdzeń i tagów) za pomocą jednego polecenia zamiast dwóch.

Git 2.4.1+ (Q2 2015) wprowadzi tę opcję push.followTags.

VonC
źródło
Wygląda na to, że nie działa, gdy chcesz przesłać do innego pilota (zamiast źródła), tylko wypycha moją bieżącą gałąź.
Aloys
@Aloys, które będą zależeć od Twojej wersji git i bieżącej domyślnej polityki push: stackoverflow.com/questions/10002239/ ...
VonC,
Jeśli chcesz również pchać zdalne gałęzie, użyj--mirror
BFar
18

Przyjęta odpowiedź nie jest do końca poprawna, a przynajmniej mi się nie udało. Musiałem też określić repozytorium zdalne, np:

git push origin --all
Iain Hunter
źródło
Określenie pilota jest konieczne tylko wtedy, gdy przesyłanie danych nie jest ustawione.
aross
repozytorium wymagane, jeśli dodano wiele pilotów, wierzę ( $git remote -v)
michael
2
Aby ustawić śledzenie między lokalną i zdalną gałęzią, można dodać -u:git push -u origin --all
Drenai