@ user292677のアイデアから始めて、問題を解決するためにそれを改良しました。
- githubでnew-repoを作成します。
- 抽出したい古いリポジトリのローカルコピーにcdします。これは、new-repoのマスターになるnew-projectブランチを追跡するように設定されています。
$ git push https://github.com/accountname/new-repo.git +new-project:master
新しいGithubリポジトリが完成しました。結果は次のとおりです。
- 名前の新しいGithubのリポジトリ新レポ、
- その
master
対応の古いレポさんの新プロジェクト、と
- すべての歴史が保存されています。
実際、この方法を使用することで、ブランチを厳選した新しいレポを作成し、必要に応じて名前を変更できることがわかりました。
$ git push git@github.com:accountname/new_repo +new-project:master +site3a:rails3
その結果、既存のsite3aブランチも新しいリポジトリに移動され、rails3として表示されます。これは非常によく機能します。ネットワークダイアグラムは、新しいマスターとrails3を完全な履歴と相互の正しい関係で示しています。
2013-12-07更新:これを別のプロジェクトで使用し、このレシピがまだ機能することを確認しました。
アップデート2018-01-11:httpsプロトコルにGitHub推奨を使用するようにステップ3.を更新しました。レシピはまだ機能します。