Как с GitHub нажать все ветки при добавлении существующего репо?

125

Я создал новое репо на GitHub - я хочу разместить там свое существующее репо.
Я следовал инструкциям:

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

Это только толкает основную ветку на GitHub.
Как мне отправить все (включая все ветки) из моего существующего репозитория в новый репозиторий GitHub?

копченая рыба
источник
Примечание: у вас также есть git push --follow-tagsgit 1.8.3+ (май 2013 г.). См. Мой отредактированный ответ ниже
VonC

Ответы:

237

Примечание: git push --all не будет отправлять ваши теги, только ваши ветки.

git push --all
git push --tags

действительно бы все подтолкнул . См. Также « Настройка git для извлечения и выталкивания всех веток ».
Не забудьте --dry-runсделать несколько тестов, прежде чем начинать все.
См. Также справку GitHub « Работа с пультами », чтобы указать источник для удаленного репозитория GitHub.


Как упоминалось в разделе « Как заставить« git push »включать теги в ветку? », Git 1.8.3+ (май 2013 г.) представил:

git push --follow-tags

Это не приведет к выталкиванию всех тегов, а только тех, которые доступны из веток (-ов) HEAD (-ов), которые вы нажимаете.

Это может помочь сохранить эту операцию (отправку коммитов и тегов) одной командой вместо двух.

Git 2.4.1+ (второй квартал 2015 г.) представит эту опцию push.followTags.

VonC
источник
Похоже, что это не работает, когда вы хотите нажать на другой пульт (вместо источника), он только подталкивает мою текущую ветку.
Алоиз
@Aloys, которые будут зависеть от вашей версии git и текущей политики push по умолчанию: stackoverflow.com/questions/10002239/…
VonC
Если вы хотите --mirror
отправлять
18

Принятый ответ не совсем правильный, или, по крайней мере, у меня он не сработал. Мне также нужно было указать удаленное репо, например:

git push origin --all
Иэн Хантер
источник
Указание удаленного необходимо только тогда, когда восходящий поток не установлен.
aross
репозиторий требуется, если было добавлено несколько пультов, я полагаю ( $git remote -v)
Майкл
2
Чтобы установить отслеживание между локальной и удаленной ветками, можно добавить -u:git push -u origin --all
Дренай