Git Pie: A Arte Ancestral do Versionamento 馃ェ Help

Dividindo Reposit贸rios Git

Estratégias de Divisão

Abordagens

SplittingSubdirectoryHistoryReferencesgit subtreefilter-repofilter-branchBFGgit clonegit remote

Usando git-filter-repo

Processo Básico

# Instalar git-filter-repo pip install git-filter-repo # Extrair subdiret贸rio git filter-repo --path subdir/ --path-rename subdir/: # Limpar e otimizar git gc --aggressive --prune=now

Preservando História

Técnicas

filter-repo

Preservar

Remover

Reposit贸rio Original

Subdiret贸rio

Hist贸ria

Arquivos Desnecess谩rios

Scripts de Divisão

Extração de Subdiretório

#!/bin/bash # Script para dividir reposit贸rio REPO_URL="git@github.com:org/monorepo.git" SUBDIR="projects/webapp" NEW_REPO="webapp" # Clonar reposit贸rio git clone $REPO_URL cd $(basename $REPO_URL .git) # Extrair subdiret贸rio git filter-repo --path $SUBDIR/ \ --path-rename $SUBDIR/: # Configurar novo reposit贸rio git remote add origin git@github.com:org/$NEW_REPO.git git push -u origin main

Limpeza de Referências

#!/bin/bash # Limpar refer锚ncias antigas # Remover remotes antigos git remote remove origin # Limpar refs git for-each-ref --format="%(refname)" refs/original/ | \ xargs -n 1 git update-ref -d # Executar GC git gc --aggressive --prune=now

Validação

Checklist

Valida莽茫oHist贸riaConte煤doIntegridadeCommitsBranchesTagsArquivosPermiss玫esLinksRefsObjectsConfig

Melhores Práticas

Recomendações

+------------------------+ | DIVIS脙O REPOSIT脫RIO | | | | 1. Backup inicial | | 2. Teste em clone | | 3. Validar hist贸ria | | 4. Verificar deps | | 5. Atualizar CI/CD | +------------------------+
22 abril 2025