Por que
A história do Git funciona melhor quando na verdade conta a história do processo de desenvolvimento. Quando você acaba descobrindo a história (por exemplo, para pesquisar quando um bug foi introduzido, quando foi corrigido, etc.), não ajuda a ver os commits intitulados " Adicione as alterações de hoje "; eles dizem como o código foi alterado, mas não o porquê.
Reescrevendo o histórico de commits é comumente feito (para mesclar commits, trocá-los e assim por diante) - mas se você deletar arbitrariamente 2 de cada 3 commits, ele provavelmente permanecerá > tão inútil quanto antes. Em vez disso, reescreva o histórico para limpar coisas como "whoops, conserte um erro de digitação" ou adicione mais detalhes para enviar mensagens.
Naturalmente, o acima é uma questão de opinião, mas geralmente é mais prático deixar o computador lembrar as coisas para que você não precise.
425 commits são normais para um projeto de vários meses. Também é relativamente pequeno comparado a muitos repositórios Git do mundo real (que medem commits em mil). Se sua preocupação for o uso de espaço em disco, e o Git ainda não executar o git gc
periódico, tente executá-lo manualmente e veja se isso ajuda.
Para backups na rede, git push
será muito mais eficiente do que carregar manualmente repositórios inteiros, pois ele sabe exatamente o que precisa ser carregado e o que já está lá.
Voltando ao ponto
O Git tem muitas ferramentas para reescrever o histórico - o mais comum é o git rebase --interactive
, que pode fazer exatamente o tipo de edição que você quer.
; on a feature branch, to rewrite everything that's not yet in master
git rebase -i master
; on master, to go through the *entire history*
git rebase -i --root
A execução no modo interativo abre uma "lista de tarefas" em um editor de texto, com uma linha por confirmação e uma "ação" na frente dela.
-
Mover as linhas irá reorganizar as confirmações. (No entanto, alterar o texto não atualizará as mensagens de confirmação - elas são apenas visualizações. Use
reword
para editar a mensagem real.) -
Alterar a ação de
pick
parasquash
combinará o commit com o acima - resultando em um único commit que possui ambas as mensagens também. -
A ação
fixup
é semelhante, mas mantém apenas a primeira mensagem.
Esse é o básico, porque muitos tutoriais já foram escritos com muito mais detalhes. Por exemplo, o Git Book tem um capítulo sobre reescrita da história .