🐸

Git で任意のブランチを新プロジェクトとして独立させる方法

2024/10/01に公開

Git で既存プロジェクトにある任意のブランチを、履歴を保持させつつ別の新しいプロジェクトとして独立させる手順のメモです。
(履歴が不要なら、ローカルPCでプロジェクトフォルダを丸ごとコピーして、Git を初期化すれば OK。)

手順

今回は既存プロジェクトにある new-project というブランチを、新プロジェクトとして新しいリポジトリに移行することとします。

1. 新しいリポジトリを作成

GitHub で移行先となる新プロジェクト用のリポジトリを作成します。ここではリポジトリ名は new-project-repo とします。作成直後なので、この時点では空っぽの状態です。

2. 作業するブランチへ移動

既存プロジェクトでターミナルを開き、new-project ブランチに移動します。

git checkout new-project

3. 不要なコミットを整理

不要なコミットを削除したい場合、git rebasegit filter-branch などで履歴を整理します。

4. 新しいリモートリポジトリを追加

ローカルリポジトリに新しいリモートリポジトリを追加します。ここで使う「リモート名」は、リポジトリへのショートカットとして機能します。デフォルトで設定される origin が存在しますが、今回は新しいリポジトリ用に別のリモート名 new-origin を指定します (リモート名は自由に設定可)。

git remote add new-origin https://github.com/username/new-project-repo.git

現在のリポジトリに設定されているリモートリポジトリの一覧を確認しておきましょう。

git remote -v

↓ 応答

new-origin    https://github.com/username/new-project-repo.git (fetch)
new-origin    https://github.com/username/new-project-repo.git (push)
origin        https://github.com/username/old-project-repo.git (fetch)
origin        https://github.com/username/old-project-repo.git (push)

5. 新しいリポジトリにプッシュ

new-project ブランチを新しいリモートリポジトリの main ブランチとしてプッシュします。

git push new-origin new-project:main

このコマンドにより、new-project ブランチの内容が新しいリポジトリの main ブランチとして保存されます。無事移行できてるか確認しましょう。

6. コードエディタや IDE で新プロジェクトの設定

Visual Studio Code や Jetbrains IDE で、 新プロジェクトの環境を整えます。新プロジェクトを作成し、新しく作成したリポジトリをクローン。npm install で package.json に記載されたライブラリを取り込みます。ローカルサーバーを立ち上げ、ローカル環境での動作確認が問題ないことを確認します。

7. 元のプロジェクトでのブランチ整理

移行元のプロジェクトで、不要になった移行済みの new-project ブランチを削除します。

git branch -d new-project

完了 👍

以上の手順で、既存プロジェクトにある任意のブランチを、新しいプロジェクトとして切り離すことができました。

GitHubで編集を提案

Discussion