首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将我所有的git存储库切换到深度20,以节省空间?

将我所有的git存储库切换到深度20,以节省空间?
EN

Unix & Linux用户
提问于 2020-06-29 09:41:11
回答 1查看 77关注 0票数 0

我知道git clone --depth=20 常常比git clone小得多。官方文件--depth

看起来我的repos文件夹有点疯狂了,下面是带有输出的fd C3

代码语言:javascript
复制
$ declare -r ALL_GIT="$(fd -HIFt d '.git')"
$ echo "$ALL_GIT" | wc -l
1528
$ echo "$ALL_GIT" | du -hs
du: cannot access './freebsd/contrib/bmake/PSD.doc/tutorial.ms': Permission denied
du: cannot access './freebsd/contrib/bmake/PSD.doc/Makefile': Permission denied
du: cannot access './statsmodels/statsmodels/statsmodels/datasets/macrodata/src/macrodata.xls/macrodata.xls': Permission denied
44G .

有什么命令可以用来删除所有的历史记录和修剪所有的孤儿,比20大吗?

EN

回答 1

Unix & Linux用户

发布于 2020-06-30 04:35:19

根据我在这里的答案--基于这里的其他答案--https://stackoverflow.com/a/62650346,正如@muru所提到的,下面是有效的方法:

代码语言:javascript
复制
git pull --depth 20
git tag -d $(git tag -l)
git reflog expire --expire=all --all
git gc --prune=all

要通过在整个磁盘上运行此命令来节省空间吗?-然后运行以下fd命令:

代码语言:javascript
复制
fd -HIFt d '.git' -x bash -c 'pushd "$0" && ( git pull --depth 20; git tag -d $(git tag -l); git reflog expire --expire=all --all; git gc --prune=all ) && popd' {//}

或者只是普通的find

代码语言:javascript
复制
find -type d -name '.git' -exec bash -c 'pushd "${0%/*}" && ( git pull --depth 20; git tag -d $(git tag -l); git reflog expire --expire=all --all; git gc --prune=all ) && popd' {} \;

-这对我意味着什么?-好吧,前面提到的44G

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/595650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档