Manutenção e organização do repositório
Aprenda comandos como `git gc` e `git prune` para limpar e otimizar seu repositório Git local.
Manutenção e organização do repositório é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Boas-vindas à manutenção do Git
Com o tempo, os seus repositórios Git locais podem acumular arquivos desnecessários e ficar menos eficientes. Pense nisso como um quarto bagunçado!
Nesta lição, aprenderemos a limpar e otimizar os seus repositórios Git usando comandos poderosos, como git gc e git prune. Isso mantém os seus projetos funcionando sem problemas.
Explicando o armazenamento de objetos do Git
Primeiro, vamos entender como o Git armazena os dados. O Git salva o histórico do seu projeto como uma série de "objetos":
- Blobs: Conteúdo dos arquivos
- Árvores: Diretórios e seus conteúdos
- Confirmações: Instantâneos do seu projeto em determinado momento
- Etiquetas: Ponteiros para confirmações específicas
Esses objetos podem ser armazenados como "objetos soltos" ou compactados em "arquivos de pacote" para obter mais eficiência.
Apresentando <code>git gc</code> (coleta de lixo)
O comando git gc significa "coleta de lixo". É a ferramenta integrada do Git para limpar e otimizar o seu repositório.
As principais tarefas incluem:
- Empacotar objetos soltos: Compactar objetos individuais em um único arquivo de pacote.
- Remover objetos inalcançáveis: Excluir objetos que já não são referenciados por nenhuma confirmação, ramificação ou etiqueta (após determinado tempo).
- Remover arquivos de pacote antigos: Eliminar arquivos de objetos compactados desatualizados.
Esse processo torna o seu repositório menor e mais rápido.
Executando <code>git gc</code> (uso geral)
Você pode executar git gc manualmente a qualquer momento. O Git também o executa automaticamente em segundo plano quando você realiza determinadas operações, como enviar ou buscar dados.
Em geral, é seguro executá-lo, mas é uma boa prática verificar se você não tem trabalho não confirmado que possa precisar recuperar antes de uma limpeza importante.
Experimente executá-lo no seu terminal:
git gcEntendendo a saída de <code>git gc</code>
Ao executar git gc, você verá uma saída semelhante a esta:
Counting objects: 1234, done.
Compressing objects: 100% (987/987), done.
Writing objects: 100% (1234/1234), done.
Total 1234 (delta 567), reused 0 (delta 0)
Removing duplicate objects: 100% (256/256), done.
Pruning objects: 100% (123/123), done.Isso mostra o Git trabalhando para empacotar objetos, gravar novos arquivos de pacote e remover (excluir) objetos antigos e inalcançáveis. Os números variarão conforme o estado do seu repositório.
Foco em `git prune`
Embora git gc cuide de muitas tarefas de limpeza, git prune trata especificamente da remoção de objetos "órfãos" ou "inacessíveis".
- Objetos órfãos: são objetos que existem em seu repositório, mas que não são mais referenciados por nenhum commit, branch ou tag e também não fazem parte de um packfile.
- Objetos inacessíveis: é um termo semelhante a órfão, mas mais abrangente. Esses objetos podem existir por vários motivos, como após um rebase ou reset que reescreve o histórico.
git prune exclui esses objetos se eles forem mais antigos que um prazo de expiração padrão, geralmente de 2 semanas.
Executando `git prune` diretamente
Normalmente, não é necessário executar git prune diretamente, pois git gc o chama. No entanto, você pode usá-lo para uma limpeza mais direcionada.
Para ver o que git prune faria sem realmente excluir nada, use a opção --dry-run:
git prune --dry-runLimpeza com expiração
Por padrão, git prune (e a etapa de limpeza de git gc) remove apenas objetos com mais de duas semanas. Você pode substituir esse comportamento usando a opção --expire.
Isso é útil se você quiser limpar agressivamente objetos órfãos criados muito recentemente, talvez após um rebase experimental que você tem certeza de que não precisará desfazer.
Por exemplo, para limpar objetos com mais de 1 dia:
git prune --expire=1.dayDiferenciando de `git reflog expire`
É importante não confundir git prune com git reflog expire. Embora estejam relacionados à limpeza, eles têm finalidades diferentes:
git prune: exclui objetos reais do Git (blobs, árvores e commits) do banco de dados de objetos.git reflog expire: limpa entradas no seu reflog (um histórico local de onde seu HEAD esteve), tornando determinados commits mais difíceis de encontrar, mas não exclui os objetos em si.
Tenha sempre cuidado ao modificar o histórico ou executar comandos de limpeza!
Verificação de manutenção
Qual das opções a seguir descreve melhor a função principal de git gc?
Recapitulação e próximos passos
Parabéns! Você aprendeu a manter seus repositórios Git organizados e eficientes.
git gc: o comando completo para coleta de lixo, empacotamento de objetos e limpeza.git prune: direciona-se especificamente a objetos inacessíveis e órfãos mais antigos que um prazo de expiração definido e os remove.
A manutenção regular ajuda a garantir que seu fluxo de trabalho com Git continue tranquilo e que seus repositórios não consumam espaço excessivo em disco. Continue assim!
Perguntas Frequentes
A aula “Manutenção e organização do repositório” é grátis?
Sim — o texto completo de “Manutenção e organização do repositório” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Manutenção e organização do repositório”?
Aprenda comandos como `git gc` e `git prune` para limpar e otimizar seu repositório Git local. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Manutenção e organização do repositório”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Git Reflog e recuperação do histórico
- Git Bisect para depuração
- Manutenção e organização do repositório
- Reescrevendo o Histórico com git filter-repo