The Wayback Machine - https://web.archive.org/web/20230222173444/https://docs.github.com/ru/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository
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.

Splitting a subfolder out into a new repository

You can turn a folder within a Git repository into a brand new repository.

При создании нового клона репозитория вы не потеряете журнал Git или изменения при разделении папки в отдельный репозиторий.

  1. Откройте ТерминалТерминалGIT Bash.

  2. Измените текущую рабочую папку на расположение, где должен находиться клонированный репозиторий.

  3. Клонируйте репозиторий, содержащий подпапку.

    $ git clone https://github.com/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.

  7. В верхней части нового репозитория на странице быстрой установки GitHub.com щелкните , чтобы скопировать URL-адрес удаленного репозитория.

    Копирование поля URL-адреса удаленного репозитория

    Совет: Сведения о различиях между URL-адресами HTTPS и SSH см. в разделе About remote repositories.

  8. Проверьте существующее удаленное имя репозитория. Например, к распространенным вариантам относятся origin и upstream.

    $ git remote -v
    > origin  https://github.com/USERNAME/REPOSITORY-NAME.git (fetch)
    > origin  https://github.com/USERNAME/REPOSITORY-NAME.git (push)
  9. Настройте новый удаленный URL-адрес для нового репозитория, используя существующее удаленное имя и URL-адрес удаленного репозитория, скопированный на шаге 7.

    git remote set-url origin https://github.com/USERNAME/NEW-REPOSITORY-NAME.git
  10. Убедитесь, что удаленный URL-адрес изменился с учетом нового имени репозитория.

    $ git remote -v
    # Verify new remote URL
    > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (fetch)
    > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (push)
  11. Отправьте изменения в новый репозиторий на GitHub.

    git push -u origin BRANCH-NAME