Skip to main content

Разделение подпапки в новый репозиторий

Вы можете преобразовать папку в репозитории Git в совершенно новый репозиторий.

Platform navigation

Примечание.

Для выполнения этих инструкций вам потребуется Git версии 2.22.0 или более поздней.git filter-repo

При создании нового клона репозитория вы не потеряете журнал 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
    

    Теперь репозиторий должен содержать только те файлы, которые были в подпапках.

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

    $ git filter-repo --subdirectory-filter FOLDER-NAME
    # Filter the specific branch by using a single sub-directory as the root for the new repository
    
  6.        [Создайте новый репозиторий](/repositories/creating-and-managing-repositories/creating-a-new-repository) на GitHub.
    
  7. В верхней части нового репозитория на странице быстрого установки GitHubщелкните для копирования URL-адреса удаленный репозиторий.

    Снимок экрана: заголовок "Быстрая настройка" в репозитории. Рядом с удаленный URL-адрес значок двух перекрывающихся квадратов описывается оранжевым цветом.

    Совет

    Сведения о разнице между URL-адресами HTTPS и SSH см. в разделе Сведения об удаленных репозиториях.

  8. Добавьте новое удаленное имя с URL-адресом, скопированным для репозитория. Например, к распространенным вариантам относятся origin и upstream.

    git remote add origin https://github.com/USERNAME/REPOSITORY-NAME.git
    
  9. Убедитесь, что удаленный 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)
    
  10. Отправьте изменения в новый репозиторий на GitHub.

    git push -u origin BRANCH-NAME