gpt4 book ai didi

git - 如何找出哪些文件占用了 git repo 中最多的空间?

转载 作者:IT王子 更新时间:2023-10-29 01:10:28 26 4
gpt4 key购买 nike

我需要缩小存储库。我想我可以通过从 git 历史记录中删除有问题的二进制文件来使其更小:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch BigFile'

然后释放对象:

rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --aggressive --prune=now

(如果这些命令有误,请随时发表评论。)

问题:如何识别那些大文件,以便我可以评估是否将它们从 git 历史记录中删除?它们很可能不再在工作树中了——它们已被删除并且可能也未被跟踪:

git rm --cached BigFile

最佳答案

twalberg's answer做的伎俩。我将其包装在一个循环中,以便您可以按大小顺序列出文件:

while read -r largefile; do
echo $largefile | awk '{printf "%s %s ", $1, $3 ; system("git rev-list --all --objects | grep " $1 " | cut -d \" \" -f 2-")}'
done <<< "$(git rev-list --all --objects | awk '{print $1}' | git cat-file --batch-check | sort -k3nr | head -n 20)"

head -n 20 将输出限制为前 20 个。根据需要进行更改。

确定问题文件后,查看 this回答如何删除它们。

关于git - 如何找出哪些文件占用了 git repo 中最多的空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13403069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com