{"meta":{"title":"Разделение подпапки в новый репозиторий","intro":"Вы можете преобразовать папку в репозитории Git в совершенно новый репозиторий.","product":"Начало работы","breadcrumbs":[{"href":"/ru/get-started","title":"Начало работы"},{"href":"/ru/get-started/using-git","title":"С помощью Git"},{"href":"/ru/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository","title":"Разделение вложенной папки"}],"documentType":"article"},"body":"# Разделение подпапки в новый репозиторий\n\nВы можете преобразовать папку в репозитории Git в совершенно новый репозиторий.\n\n> \\[!NOTE]\n> Для выполнения этих инструкций вам потребуется Git версии 2.22.0 или более поздней.`git filter-repo`\n\nПри создании нового клона репозитория вы не потеряете журнал Git или изменения при разделении папки в отдельный репозиторий. Однако обратите внимание, что новый репозиторий не будет содержать ветви и теги исходного репозитория.\n\n1. Откройте <span class=\"platform-mac\">Терминал</span><span class=\"platform-linux\">Терминал</span><span class=\"platform-windows\">GIT Bash</span>.\n\n2. Измените текущую рабочую папку на расположение, где должен находиться клонированный репозиторий.\n\n3. Клонируйте репозиторий, содержащий подпапку.\n\n   ```shell\n   git clone https://github.com/USERNAME/REPOSITORY-NAME\n   ```\n\n4. Измените текущую рабочую папку на клонированный репозиторий.\n\n   ```shell\n   cd REPOSITORY-NAME\n   ```\n\n5. Чтобы отфильтровать вложенные папки из остальных файлов в репозитории, установите [`git-filter-repo`](https://github.com/newren/git-filter-repo)и выполните `git filter-repo` следующие аргументы.\n\n   * `FOLDER-NAME`: папка в проекте, в которой вы хотите создать отдельный репозиторий.\n\n   <div class=\"ghd-tool windows\">\n\n   > \\[!TIP]\n   > Windows пользователям следует использовать `/` для разделения папок.\n\n   </div>\n\n   ```shell\n   $ git filter-repo --path FOLDER-NAME/\n   # Filter the specified branch in your directory and remove empty commits\n   ```\n\n   Теперь репозиторий должен содержать только те файлы, которые были в подпапках.\n\n   Если требуется, чтобы одна конкретная вложенная папка была новой корневой папкой нового репозитория, можно использовать следующую команду:\n\n   ```shell\n   $ git filter-repo --subdirectory-filter FOLDER-NAME\n   # Filter the specific branch by using a single sub-directory as the root for the new repository\n   ```\n\n6. [Создайте новый репозиторий](/ru/repositories/creating-and-managing-repositories/creating-a-new-repository) на GitHub.\n\n7. В верхней части нового репозитория на странице быстрого установки GitHubщелкните <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copy\" aria-label=\"copy icon\" role=\"img\"><path d=\"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z\"></path><path d=\"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z\"></path></svg> для копирования URL-адреса удаленный репозиторий.\n\n   ![Снимок экрана: заголовок \"Быстрая настройка\" в репозитории. Рядом с удаленный URL-адрес значок двух перекрывающихся квадратов описывается оранжевым цветом.](/assets/images/help/repository/copy-remote-repository-url-quick-setup.png)\n\n   > \\[!TIP]\n   > Сведения о разнице между URL-адресами HTTPS и SSH см. в разделе [Сведения об удаленных репозиториях](/ru/get-started/git-basics/about-remote-repositories).\n\n8. Добавьте новое удаленное имя с URL-адресом, скопированным для репозитория. Например, к распространенным вариантам относятся `origin` и `upstream`.\n\n   ```shell\n   git remote add origin https://github.com/USERNAME/REPOSITORY-NAME.git\n   ```\n\n9. Убедитесь, что удаленный URL-адрес добавлено с новым именем репозитория.\n\n   ```shell\n   $ git remote -v\n   # Verify new remote URL\n   > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (fetch)\n   > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (push)\n   ```\n\n10. Отправьте изменения в новый репозиторий на GitHub.\n\n    ```shell\n    git push -u origin BRANCH-NAME\n    ```"}