174 votes

Y a-t-il un moyen de nettoyer git?

On dirait que mon projet devient de plus en plus grand avec chaque commit / push de git. Est-il possible de nettoyer mon dossier git?

228voto

houbysoft Points 9773

Je ne suis pas sûr de ce que vous voulez. Tout d'abord, bien sûr, à chaque fois que vous s'engager/pousser le répertoire est obtenir un peu plus grand, car il a pour stocker chacune de ces validations.

Toutefois, vous souhaiterez probablement git gc "nettoyage des fichiers inutiles et d'optimiser le référentiel local" (page de man).

Un autre éventuellement pertinentes de commande est - git clean qui permettra d'éliminer sans traces de fichiers à partir de votre arbre (page de man).

70voto

phamductri Points 175

Courir:

 git remote prune origin
 

Supprime toutes les branches de suivi obsolètes qui ont déjà été supprimées à origin mais qui sont toujours disponibles localement à remotes/origin .

 git gc --auto
 

'G arbage C ollection' - exécute des tâches d'entretien ménager (compresse les révisions, supprime les objets en vrac / inaccessibles). Le drapeau --auto détermine d’abord si un travail est requis et quitte sans rien faire sinon.

28voto

VonC Points 414372

Un scénario où votre repo git obtiendrez sérieusement plus grand avec chaque commit est un endroit où vous sont en train de commettre des fichiers binaires que vous générez régulièrement. Leur stockage ne sera pas aussi efficace que fichier texte.

Un autre est celui où vous avez un grand nombre de fichiers dans un repo (qui est une limite de git) au lieu de plusieurs subrepos (géré comme submodules).

Dans cet article sur le git de l'espace, AlBlue mentionne:

Notez que Git (et Hg, et d'autres DVCSs) ne souffrent d'un problème où les (gros) fichiers binaires sont vérifiées, puis supprimés, comme ils vont encore dans le référentiel et prennent de la place, même si ils ne sont pas à jour.

Si vous avez de gros fichiers binaires stockées dans votre repo git, vous pouvez envisager:

12voto

anandharshan Points 3

git clean -d -f -i est la meilleure façon de le faire.

Cela aidera à nettoyer de manière plus contrôlée.

-i signifie interactif.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X