Il y a trop de modifications qui ne peuvent pas être soumises à github. Comment effacer les enregistrements de modifications historiques ?
某草草
某草草 2017-05-02 09:31:58
0
2
656

Comme mentionné, je n'ai pas poussé vers github depuis six mois, comme il contient plusieurs jars qui n'ont pas été ignorés, il y en a de plus en plus. Après avoir poussé, il signalera :

.
Counting objects: 4779, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3903/3903), done.
error: RPC failed; result=56, HTTP code = 200 | 14.92 MiB/s
fatal: The remote end hung up unexpectedlyMiB | 158.00 KiB/s
Writing objects: 100% (4779/4779), 628.84 MiB | 152.00 KiB/s, done.
Total 4779 (delta 2353), reused 3 (delta 0)
fatal: The remote end hung up unexpectedly
Everything up-to-date

J'ai recherché certaines méthodes, telles que passer à ssh, etc., mais aucune n'a fonctionné. Existe-t-il un moyen simple de supprimer l'historique et de diffuser uniquement la version actuelle ?

Il n'y a vraiment pas d'autre choix que de cloner et d'écraser à nouveau, mais il y a des centaines de mégaoctets en ligne, il serait donc préférable qu'il y ait des paramètres de commande qui peuvent être simplement ignorés.


Trouvez un moyen https://www.kernel.org/pub/software/scm/git/docs/git-filter-branch.html d'effacer l'historique. Je suis en train de l'essayer, je continuerai à écrire quand tout sera OK.

某草草
某草草

répondre à tous(2)
伊谢尔伦

J'ai finalement trouvé un moyen simple. Utiliser la commande filter-branch fournie avec git peut filtrer et supprimer, mais c'est trop lent, je l'ai exécuté toute la nuit et cela ne s'est pas terminé, bloqué à 98 % de progression. Plus tard, j'ai trouvé l'outil BFG Repo-Cleaner et je l'ai supprimé en quelques minutes. La taille du répertoire .git a été réduite d'environ 2,9 Go à 70 Mo. J'ai supprimé tous les fichiers tar.gz, zip, jar, war, etc. dans le passé. Laissez le code source derrière vous et envoyez-le enfin sur github.

Le processus d'exécution spécifique est :

bfg --delete-files *.tar.gz # 后面的文件名匹配可换成自己要删除的文件名
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push --all --force
git push --all --tags --force
大家讲道理

Rebase, en appuyant sur -f

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal