Я начал с идеи @ user292677 и усовершенствовал ее, чтобы решить мою проблему:
- Создайте new-repo в github.
- cd в вашу локальную копию старого репозитория, из которого вы хотите извлечь, который настроен для отслеживания ветки new-project , которая станет new-repo мастер.
$ git push <a href="https://github.com/accountname/new-repo.git" rel="noreferrer">https://github.com/accountname/new-repo.git</a> +new-project:master
Новый репозиторий Github закончен. Результат:
- новый репозиторий Github с именем new-repo ,
- , чей
master
соответствует старому репо new-project , с
- вся история сохранилась.
На самом деле, я обнаружил, что с помощью этого метода я могу создать новое репо с выбранным вручную набором веток, переименованным так, как я хотел:
$ git push git@github.com:accountname/new_repo +new-project:master +site3a:rails3
В результате ранее существовавшая ветка site3a теперь также перемещается в новый репозиторий и будет выглядеть как rails3 . Это работает очень хорошо: на схеме сети показаны новые master и rails3 с полной историей и в их правильном отношении друг к другу.
Обновление 2013-12-07: использовал это с другим проектом и проверил, что этот рецепт все еще работает.
Обновление 2018-01-11: обновлен шаг 3. для использования рекомендации GitHub для протокола https. Рецепт все еще работает.