Dividindo Reposit贸rios Git
Estratégias de Divisão
Abordagens
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
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
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