1. ホーム
  2. ギット

[解決済み】既存のレポのブランチから新しいGitHubレポを作成する方法とは?

2022-04-11 01:14:09

質問

私は マスター 新規プロジェクト ブランチを作成します。そして今度は、new-project ブランチをベースにしたマスターを持つ、まったく新しいレポを作成したいと思います。

背景 私は3つの独立したアプリケーションを含む1つのリポジトリを持っています。最初はこのような形ではなかったのです。元々、レポには1つのアプリしかありませんでした。しかし、時間の経過とともに、ビジネスニーズが変化してきました。1つのアプリが2つになり(レガシーバージョンと書き直し)、ウェブサービスが追加されました。3つのプロジェクトを格納するために、別々のブランチが使用されました。しかし、この3つのプロジェクトはコードを共有していません。だから、それぞれのレポに分割した方がシンプルになる。

解決方法は?

私は @user292677 さんのアイデアから始めて、私の問題を解決するためにそれを改良しました。

  1. を作成します。 新規レポ をgithubに登録します。
  2. を追跡するように設定されている、抽出したい古いレポのローカルコピーに cd してください。 新しいプロジェクト ブランチとなります。 新規レポ のマスターになります。
  3. $ git push https://github.com/accountname/new-repo.git +new-project:master

新しいGithubのレポが完成しました。その結果は

  • という名前の新しいGithubリポジトリが作成されました。 新規レポ ,
  • その master は、古いレポの 新規プロジェクト である。
  • すべての履歴が保存されます。

実際、この方法を使えば、厳選したブランチを好きなようにリネームして新しいレポを作成できることがわかりました。

$ git push [email protected]:accountname/new_repo +new-project:master +site3a:rails3

その結果、既成の サイト3a ブランチも新しいレポに移動し、次のように表示されます。 レイルズ3 . これはとてもうまくいきます:ネットワーク図は、新しい マスター レイルズ3 を、完全な履歴と、互いの正しい関係で表示します。

更新 2013-12-07: 別のプロジェクトでこれを使用し、このレシピがまだ動作することを確認しました。

更新 2018-01-11: 手順3.を更新し、GitHubが推奨するhttpsプロトコルを使用するようにしました。レシピはまだ動作します。