相关疑难解决方法(0)

如何在git历史中查找/识别大型提交?

我有一个300 MB的git repo.我目前检出的文件重2 MB,git repo重298 MB.这基本上是一个仅限代码的回购,重量不应超过几MB.

最有可能的是,有人在某个时候偶然犯了一些重文件(视频,巨大的图像等),然后将它们删除......但不是从git中删除,所以我们有无用大文件的历史.如何在git历史记录中追踪大文件?有400多个提交,所以一个接一个将是耗时的.

注意:我的问题不是关于如何删除文件,而是如何在第一时间找到它.

git

313
推荐指数
10
解决办法
9万
查看次数

Git:显示两次提交之间的文件总大小差异?

是否可以显示两次提交之间的文件总大小差异?就像是:

$ git file-size-diff 7f3219 bad418 # I wish this worked :)
-1234 bytes
Run Code Online (Sandbox Code Playgroud)

我试过了:

$ git diff --patch-with-stat
Run Code Online (Sandbox Code Playgroud)

这显示了diff中每个二进制文件的文件大小差异 - 但不是文本文件,而不是文件总大小差异.

有任何想法吗?

git filesize git-diff

73
推荐指数
2
解决办法
3万
查看次数

在git repo中查找超过x兆字节的文件,这些文件在HEAD中不存在

我有一个Git存储库我存储随机的东西.大多是随机脚本,文本文件,我设计的网站等等.

我随着时间的推移删除了一些大型二进制文件(通常为1-5MB),它们会增加存储库的大小,这在修订历史中是不需要的.

基本上我希望能够做到..

me@host:~$ [magic command or script]
aad29819a908cc1c05c3b1102862746ba29bafc0 : example/blah.psd : 3.8MB : 130 days old
6e73ca29c379b71b4ff8c6b6a5df9c7f0f1f5627 : another/big.file : 1.12MB : 214 days old
Run Code Online (Sandbox Code Playgroud)

..然后能够查看每个结果,检查是否不再需要然后删除它(可能使用filter-branch)

git

57
推荐指数
5
解决办法
2万
查看次数

如何在git存储库中找到N个最大的文件?

我想在我的存储库中找到10个最大的文件.我想出的脚本如下:

REP_HOME_DIR=<top level git directory>
max_huge_files=10

cd ${REP_HOME_DIR}
git verify-pack -v ${REP_HOME_DIR}/.git/objects/pack/pack-*.idx | \
  grep blob | \
  sort -r -k 3 -n | \
  head -${max_huge_files} | \
  awk '{ system("printf \"%-80s \" `git rev-list --objects --all | grep " $1 " | cut -d\" \" -f2`"); printf "Size:%5d MB Size in pack file:%5d MB\n", $3/1048576,  $4/1048576; }'
cd -
Run Code Online (Sandbox Code Playgroud)

是否有更好/更优雅的方式来做同样的事情?

"文件"是指已经检入存储库的文件.

git

40
推荐指数
6
解决办法
1万
查看次数

git:找到最大的提交

在git仓库中找到最大提交(即提交大多数更改,例如计算为添加/删除行数的提交)的方法是什么?

请注意,我真的想要最大的提交,而不是最大的文件,所以git find fat commit在这里没有用.

git

14
推荐指数
2
解决办法
2706
查看次数

标签 统计

git ×5

filesize ×1

git-diff ×1