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://github.com/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-repo
com 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 commits
Agora 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,
origin
ouupstream
são duas opções comuns.git remote add origin https://github.com/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://github.com/USERNAME/NEW-REPOSITORY-NAME.git (fetch) > origin https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (push)
-
Faça push das alterações para o novo repositório no GitHub.
git push -u origin BRANCH-NAME