Observação
Você precisa do Git versão 2.22.0 ou posterior para seguir essas instruções, caso contrário, git filter-repo não funcionará.
Se você criar um clone do repositório, não perderá nenhuma alteração ou histórico do Git quando dividir uma pasta e criar um repositório separado. No entanto, observe que o novo repositório não terá os branches e as marcas do repositório original.
- 
Abra TerminalTerminalGit Bash.
 - 
Altere o diretório de trabalho atual para o local em que deseja criar o novo repositório.
 - 
Clone o repositório que contém a subpasta.
git clone https://HOSTNAME/USERNAME/REPOSITORY-NAME - 
Altere o diretório de trabalho atual para o repositório clonado.
cd REPOSITORY-NAME - 
Para filtrar a subpasta do restante dos arquivos no repositório, instale
git-filter-repo, e executegit filter-repocom os argumentos a seguir.FOLDER-NAME: a pasta dentro do seu projeto onde você deseja criar um repositório separado.
Dica
Usuários do Windows devem usar
/para delimitar pastas.$ git filter-repo --path FOLDER-NAME/ # Filter the specified branch in your directory and remove empty commitsAgora o repositório deve conter apenas os arquivos que estava(m) na(s) subpasta(s).
Para que uma subpasta específica seja a nova pasta raiz do novo repositório, use o seguinte comando:
$ git filter-repo --subdirectory-filter FOLDER-NAME # Filter the specific branch by using a single sub-directory as the root for the new repository - 
Crie um repositório no GitHub.
 - 
Na parte superior do novo repositório na página de Configuração Rápida do GitHub, clique em para copiar a URL do repositório remoto.

Dica
Para obter informações sobre a diferença entre URLs HTTPS e SSH, confira Sobre repositórios remote.
 - 
Adicione um nome remoto com a URL que você copiou para seu repositório. Por exemplo,
originouupstreamsão duas opções comuns.git remote add origin https://HOSTNAME/USERNAME/REPOSITORY-NAME.git - 
Verifique se a URL remota foi adicionada com seu nome de repositório.
$ 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) - 
Faça push das alterações no novo repositório no GitHub.
git push -u origin BRANCH-NAME