Я пропустил что-то очевидное?
Во многих случаях, просто добавив новый пульт и нажав на него будет делать то, что вы хотите:
git remote add github [email protected]:user/repo.git
git push github master
Это будет толкать master
ветвь GitHub. Вы можете использовать другие ветви аналогичным образом, и вы можете нажимать свои теги с помощью git push github --tags
.
Более полный вариант заключается в использовании опции --mirror
, например.
# Add the github remote as above, then
git push --mirror github
От the documentation:
--mirror
Вместо того, чтобы называть каждый реф толкать, указывает, что все рефов под refs/
(которая включает в себя, но не ограничивается refs/heads/
, refs/remotes/
и refs/tags/
) зеркалировать в удаленный репозиторий. Недавно созданные локальные ссылки будут перенесены в удаленный конец, локально обновленные refs будут принудительно обновлены на удаленном конце, и удаленные ссылки будут удалены с удаленного конца. Это значение по умолчанию, если установлен параметр конфигурации remote.<remote>.mirror
.
Обратите внимание, что это подразумевает --force
, поэтому будьте осторожны с ним. Некоторым пользователям нравится делать это из нового голого клона пульта (т. Е. Сначала делать git clone --bare [email protected]:user/repo.git
, а затем выполнять остальные шаги из недавно созданного открытого репозитория).