Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

サブフォルダを新規リポジトリに分割する

Git リポジトリ内のフォルダを、全く新しいリポジトリに変更できます。

リポジトリの新しいクローンを作成した場合でも、フォルダを別のリポジトリに分割したとき、Git の履歴や変更を失うことはありません。

  1. [ターミナル][ターミナル][Git Bash] を開きます。

  2. 現在のワーキングディレクトリを、新しいリポジトリを作成したい場所に変更します。

  3. サブフォルダのあるリポジトリをクローンします。

    $ git clone https://HOSTNAME/USERNAME/REPOSITORY-NAME
  4. ワーキングディレクトリをクローンしたリポジトリに変更します。

    $ cd REPOSITORY-NAME
  5. リポジトリ内の残りのファイルからサブフォルダーを除外するには、git-filter-repo をインストールした後、次の引数を指定して git filter-repo を実行します。

    • FOLDER-NAME: 別のリポジトリを作成するプロジェクト内のフォルダー。

    ヒント: Windows ユーザーは / でフォルダーを区切る必要があります。

    $ git filter-repo --path FOLDER-NAME/
    # Filter the specified branch in your directory and remove empty commits
    > Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89)
    > Ref 'refs/heads/BRANCH-NAME' was rewritten

    これで、リポジトリにはサブフォルダー内にあったファイルだけが含まれるようになります。

  6. GitHub Enterprise Server に新しいリポジトリを作成します。

  7. お使いの GitHub Enterprise Server インスタンス の [Quick Setup](クイック セットアップ) ページにある新しいリポジトリの先頭で、 をクリックしてリモート リポジトリの URL をコピーします。

    リモートリポジトリの URL フィールドのコピー

    ヒント: HTTPS と SSH の URL の違いについては、「リモート リポジトリについて」を参照してください。

  8. リポジトリの既存のリモート名を確認します。 たとえば、originupstream の 2 つが一般的な選択肢です。

    $ git remote -v
    > origin  https://HOSTNAME/USERNAME/REPOSITORY-NAME.git (fetch)
    > origin  https://HOSTNAME/USERNAME/REPOSITORY-NAME.git (push)
  9. 既存のリモート名およびステップ 7 でコピーしたリモートリポジトリ URL を使って、新しいリポジトリの新しいリモート URL をセットアップします。

    git remote set-url origin https://HOSTNAME/USERNAME/NEW-REPOSITORY-NAME.git
  10. 新しいリポジトリの名前を使い、リモート URL が変更されたことを確認します。

    $ git remote -v
    # Verify new remote URL
    > origin  https://HOSTNAME/USERNAME/NEW-REPOSITORY-NAME.git (fetch)
    > origin  https://HOSTNAME/USERNAME/NEW-REPOSITORY-NAME.git (push)
  11. 変更を GitHub Enterprise Server の新しいリポジトリにプッシュします。

    git push -u origin BRANCH-NAME