Skip to main content

Dividir uma subpasta em um novo repositório

Você pode transformar uma pasta em um repositório do Git repository em um novo repositório.

Platform navigation

Note

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.

  1. Abra TerminalTerminalGit Bash.

  2. Altere o diretório de trabalho atual para o local em que deseja criar o novo repositório.

  3. Clone o repositório que contém a subpasta.

    git clone https://github.com/USERNAME/REPOSITORY-NAME
    
  4. Altere o diretório de trabalho atual para o repositório clonado.

    cd REPOSITORY-NAME
    
  5. Para filtrar a subpasta do restante dos arquivos no repositório, instale git-filter-repo, e execute git filter-repo com os argumentos a seguir.

    • FOLDER-NAME: a pasta dentro do seu projeto onde você deseja criar um repositório separado.

    Tip

    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
    
  6. Crie um repositório no GitHub.

  7. 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.

    Captura de tela do cabeçalho "Configuração Rápida" em um repositório. Ao lado da URL do repositório remoto, um ícone de dois quadrados sobrepostos está realçado com um contorno laranja.

    Tip

    Para obter informações sobre a diferença entre URLs HTTPS e SSH, confira "Sobre repositórios remote".

  8. Adicione um nome remoto com a URL que você copiou para seu repositório. Por exemplo, origin ou upstream são duas opções comuns.

    git remote add origin https://github.com/USERNAME/REPOSITORY-NAME.git
    
  9. 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)
    
  10. Faça push das alterações para o novo repositório no GitHub.

    git push -u origin BRANCH-NAME