一个 repo 里有 .jar
之类文件, 从 Github 下载 tag 里的 .zip
文件大小有 8M,
然后我用 filter-branch --tree-filter
删除了相关目录, 但大小没减多少..
查看了一下, 整个 repo 特别是 .git/objects/
文件太大, 总共 48M,
于是网上搜 git gc
命令的参数尝试性地弄了几个, 到了 37M, 主要是 .git/objects/pack/
36M.
作为一个 JS 前端模块还是太大了. 其实太早的 commit 可以丢弃的.
我想删除重建 .git
用来打包是可以的,
但遇到这样的问题时大家会怎么处理来舍弃无用的历史和文件?
---------
更新:
关于去掉部分 commit, 换个说法,,
我去掉一部分文件和一部分文件相关的 commit, 但要求方便从官方版本 merge 更新
目的是保证我的 repo (不用于开发, 仅仅发布压缩代码) 小, 而更新能进行 merge.
Lors du clonage, vous pouvez spécifier la profondeur, comme suit, si elle est égale à 1, cela signifie cloner uniquement le dernier commit.
Utilisez
git rebase
pour modifier l'historique des validations.Par exemple, fusionner les deux premiers commits : http://stackoverflow.com/questions/59...
Faites bon usage de
rebase
, en plus de supprimer certains commits, vous pouvez également modifier le journal des commits ; diviser les commits qui contiennent plusieurs fonctionnalités à la fois ; fusionner plusieurs commits avec les mêmes fonctionnalités pour garder l'historique de la base de code propre ; .S'il s'agit d'un projet web créé en Java, ce n'est pas trop gros si vous ajoutez ssh ou autre chose.
Vous pouvez également envisager de supprimer tous les fichiers jar publics et de ne pas les placer directement dans le projet.
Les fichiers .jar n'appartiennent évidemment pas à votre propre code front-end, mais à des dépendances tierces et ne doivent pas être placés dans la base de code. Il est recommandé d'utiliser un script pour gérer la version des dépendances tierces dès le début du projet et de supprimer le fichier .jar de la base de code.
Git peut changer l'historique
Vous pouvez essayer de fusionner l'historique inutile localement, puis forcer à le pousser
.git est votre entrepôt local, qui enregistre toutes les informations sur l'historique des commits git,
Spécifier la profondeur lors du clonage peut éviter de télécharger trop d’informations de validation historiques.
Mais votre question semble être de savoir comment gérer cela lors de la publication,
C'est simple, supprimez simplement le répertoire .git lors de la publication.
使用git lfs
https://git-lfs.github.com/