スペースを節約するために、すべてのGitリポジトリを深さ20に切り替えますか?

スペースを節約するために、すべてのGitリポジトリを深さ20に切り替えますか?

私はこれがgit clone --depth=20 <repo>しばしば多くを知っています。たくさんgit clone.公式文書--depth

私のストレージフォルダに少し狂ってしまったようです。fd 管路到着wcそしてdu、出力:

$ 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

ベストアンサー1

私は次のことができると思いました(すべてを1行に入力して\を削除します)。

$ fd -HIFt d '.git' -x bash -c 'config_bk="$(mktemp)"; 
                                git_bk="$(mktemp -d)"; \
                                git clone --depth=20 "$0" "$git_bk"; \
                                mv "$0"/.git/config "$config_bk"; \
                                rm -rf "$0"/.git; \
                                mv "$git_bk"/.git "$0";
                                mv "$config_bk" "$0"/.git;' {//}

未検証! - 楽しみのために一つ作ってみてくださいdf前後にどのくらいのスペースを節約したかを確認してください。

質問:

おすすめ記事