2010-10-14 8 views
4

Je suis sur github. J'ai mis en place un fichier .gitignore dans lequel je spécifie les fichiers à ne pas ajouter à de futurs commits puisque j'essaie d'alléger le clonage. Maintenant, j'ai besoin de supprimer tous les fichiers .class par exemple de tous les précédents commits pour partager uniquement les sources nécessaires, sinon, peu importe mes efforts, il pèsera toujours 50mb plus ou moins. J'ai jeté un oeil sur http://cheat.errtheblog.com/s/git Je pense que je pourrais avoir besoin d'une composition de ces commandes, mais je ne veux vraiment pas travailler mon travail. merciGit: effacer les fichiers du dépôt des précédents commits

Répondre

11

Il existe un exemple dans le git-filter-branch docs qui correspond à votre cas d'utilisation.

git clone project project.tmp 
cd project.tmp 
git filter-branch --prune-empty --index-filter 'git rm --cached --ignore-unmatch *.class' HEAD 
cd .. 
git clone project.tmp project.clean 
rm -rf project.tmp 
cd project.clean 

project.clean devrait alors être prêt à être poussé en amont.

PS. Si vous êtes nerveux au sujet de cette opération, il ne fait jamais de mal à expérimenter sur une branche de test clone et github.

0

Avant de cela, il est bien sûr une bonne idée de passer à une branche de test:

test branche git; tests git checkout

Ce que je faisais était juste pour trouver tous les fichiers de classe dans l'arborescence des fichiers engagés et puis supprimés de git:

  1. git ls-fichiers | grep * .class
  2. pour le fichier dans git ls-files |grep *.class; fais le fichier $ echo; terminé; Ceci vérifie juste si ma boucle for aura tous les fichiers que je veux avant rm
  3. pour le fichier dans git ls-files |grep *.class; faire git rm --cache $ fichier; terminé;

Alors vous vous engagez ceci à votre git et mettez ceci dans votre .gitignore:

syntax: regexp 
*.class 

Une fois que vous avez terminé avec cela, vous pouvez choisir de fusionner ceci dans votre branche principale et pousser ou que vous répétez la même chose sur la branche principale.

Questions connexes