1. ホーム
  2. git

[解決済み] 既存のGitリポジトリから新しいGitリポジトリを作成する方法

2023-05-19 22:17:39

質問

私はリモート git リポジトリを持っており、それは私たちが別の古い SCM で持っていたすべてを本当に置き換えたものです。多くのプロジェクトと製品が、何年にもわたってリポジトリに追加されてきました。

このリポジトリには、私が興味を抱いている製品に対応するブランチがあります。 私はこのブランチのみから真新しい git リポジトリを作成したいのですが、歴史の損失についてはあまり気にしていません。

git remote add は解決策になりますか? 私は、これらのリポジトリの両方が同じサーバー上にあることを望んでいます。

どうでしょうか?

どのように解決するのですか?

既存のリポジトリから新しい Git リポジトリを作るには、通常、新しい を作成します。 リポジトリを作成し、既存のリポジトリから新しいリポジトリにブランチをプッシュします。

次の手順で説明します。

  1. 新しいリポジトリを作成します。それは、必ず でなければなりません。

    $ mkdir /path/to/new_repo
    $ cd /path/to/new_repo
    $ git --bare init
    

    備考 : 新しいリポジトリが既存のリポジトリからアクセス可能であることを確認してください。これを行うには多くの方法がありますが、ここでは ssh://my_host/new_repo .

  2. 既存のリポジトリからブランチをプッシュします。たとえば、次のようなブランチをプッシュするとします。 topic1 というブランチを既存のリポジトリからプッシュし、その名前を master と名付けます。

    $ cd /path/to/existing_repo
    $ git push ssh://my_host/new_repo +topic1:master
    

この手法により、既存のブランチからの履歴を保持することができます。

注意: 新しいリポジトリは、事実上、新しい リモート リポジトリになります。新しいリポジトリで作業したい場合は、リポジトリをクローンする必要があります。以下は、新しいレポジトリをローカルの作業ディレクトリ new_repo :

$ git clone ssh://my_host/new_repo

この例では、新しいリポジトリをクローンする際に master ブランチは topic1 ブランチをコピーします。