Примечание.
Для выполнения этих инструкций вам потребуется Git версии 2.22.0 или более поздней.git filter-repo
При создании нового клона репозитория вы не потеряете журнал Git или изменения при разделении папки в отдельный репозиторий. Однако обратите внимание, что новый репозиторий не будет содержать ветви и теги исходного репозитория.
-
Откройте ТерминалТерминалGIT Bash.
-
Измените текущую рабочую папку на расположение, где должен находиться клонированный репозиторий.
-
Клонируйте репозиторий, содержащий подпапку.
git clone https://github.com/USERNAME/REPOSITORY-NAME -
Измените текущую рабочую папку на клонированный репозиторий.
cd REPOSITORY-NAME -
Чтобы отфильтровать вложенные папки из остальных файлов в репозитории, установите
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 -
[Создайте новый репозиторий](/repositories/creating-and-managing-repositories/creating-a-new-repository) на GitHub. -
В верхней части нового репозитория на странице быстрого установки GitHubщелкните для копирования URL-адреса удаленный репозиторий.

Совет
Сведения о разнице между URL-адресами HTTPS и SSH см. в разделе Сведения об удаленных репозиториях.
-
Добавьте новое удаленное имя с URL-адресом, скопированным для репозитория. Например, к распространенным вариантам относятся
originиupstream.git remote add origin https://github.com/USERNAME/REPOSITORY-NAME.git -
Убедитесь, что удаленный 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) -
Отправьте изменения в новый репозиторий на GitHub.
git push -u origin BRANCH-NAME