Gitリポジトリのサイズを確認する簡単な方法は何ですか?
そして、私はdu -h
私のリポジトリのルートディレクトリを意味するものではありません。無視されたファイルがたくさんあるので、そのサイズはリポジトリの合計サイズとは異なります。基本的に、リポジトリのクローンを作成するときに転送されるデータの量を知りたいです。
Gitリポジトリのサイズを確認する簡単な方法は何ですか?
そして、私はdu -h
私のリポジトリのルートディレクトリを意味するものではありません。無視されたファイルがたくさんあるので、そのサイズはリポジトリの合計サイズとは異なります。基本的に、リポジトリのクローンを作成するときに転送されるデータの量を知りたいです。
回答:
更新 git 1.8.3は、おおよそのサイズを取得するためのより効率的な方法を導入しました:
git count-objects -vH
(@VonCによる回答を参照)
「完全なサイズ」のさまざまなアイデアについては、以下を使用できます。
git bundle create tmp.bundle --all
du -sh tmp.bundle
閉じる(ただし正確ではない:)
git gc
du -sh .git/
後者の場合、あなたも数えるでしょう:
git bundle
し、git gc
実際にありませんの?別の(不要な)アーカイブを作成してからサイズを測定しますか?
du
そのファイルのサイズを測定するために使用しているので、これはかなり明確です。
以来、なおgitの1.8.3(2013年4月、22D) :
"
git count-objects
" Learned "--human-readable
" aka "-H
"オプションは、必要に応じてスケールされたKi
/Mi
/ でさまざまな大きな数を表示しますGiB
。
これは-v
、ジャックモリソンが彼の回答で述べたオプションと組み合わせることができます。
git gc
git count-objects -vH
(ABBの回答でgit gc
述べられているように、重要です)
さらに(まだgit 1.8.3)、出力はより完全です:
"
git count-objects -v
" は、オブジェクトストア内の残りの一時パックファイルと他のゴミを報告することを学びました。
gitコマンド
git count-objects -v
gitリポジトリのサイズの適切な見積もりが得られます。-vフラグを指定しないと、解凍されたファイルのサイズのみが通知されます。このコマンドは$ PATHに含まれていない可能性があります。追跡する必要がある場合があります(Ubuntuでは、たとえば/ usr / lib / git-core /にあります)。
Gitのマンページから:
-v、-verbose
緩やかなオブジェクトの数と消費されたディスク領域に加えて、パック内オブジェクトの数、パックの数、それらのパックによって消費されたディスク領域、およびgit prune-packedを実行して削除できるオブジェクトの数を報告します。
出力は次のようになります。
count: 1910
size: 19764
in-pack: 41814
packs: 3
size-pack: 1066963
prune-packable: 1
garbage: 0
あなたが探している行はですsize-pack
。これは、パックされたすべてのコミットオブジェクトのサイズ、または新しくクローンされたリポジトリの可能な最小サイズです。
git count-objects -v
機能しgit-count-objects -v
ません。
git gc
前に実行する必要があるようですgit count-objects -v
。証拠については、ここの最初の回答を参照してください:stackoverflow.com/questions/3532740/…–
git count-objects -vH | grep 'size-pack'
。H
@VonCは彼の答えに言ったように、人間が読める形式でそれを示すことです。
git count-objects --help
:size-pack:パックによって消費されたディスクスペース(KiB
使用できますgit-sizer
。--verbose
設定、出力例(下記)です。Total size of files
行を探します。
$ git-sizer --verbose Processing blobs: 1652370 Processing trees: 3396199 Processing commits: 722647 Matching commits to trees: 722647 Processing annotated tags: 534 Processing references: 539 | Name | Value | Level of concern | | ---------------------------- | --------- | ------------------------------ | | Overall repository size | | | | * Commits | | | | * Count | 723 k | * | | * Total size | 525 MiB | ** | | * Trees | | | | * Count | 3.40 M | ** | | * Total size | 9.00 GiB | **** | | * Total tree entries | 264 M | ***** | | * Blobs | | | | * Count | 1.65 M | * | | * Total size | 55.8 GiB | ***** | | * Annotated tags | | | | * Count | 534 | | | * References | | | | * Count | 539 | | | | | | | Biggest objects | | | | * Commits | | | | * Maximum size [1] | 72.7 KiB | * | | * Maximum parents [2] | 66 | ****** | | * Trees | | | | * Maximum entries [3] | 1.68 k | * | | * Blobs | | | | * Maximum size [4] | 13.5 MiB | * | | | | | | History structure | | | | * Maximum history depth | 136 k | | | * Maximum tag depth [5] | 1 | | | | | | | Biggest checkouts | | | | * Number of directories [6] | 4.38 k | ** | | * Maximum path depth [7] | 13 | * | | * Maximum path length [8] | 134 B | * | | * Number of files [9] | 62.3 k | * | | * Total size of files [9] | 747 MiB | | | * Number of symlinks [10] | 40 | | | * Number of submodules | 0 | | [1] 91cc53b0c78596a73fa708cceb7313e7168bb146 [2] 2cde51fbd0f310c8a2c5f977e665c0ac3945b46d [3] 4f86eed5893207aca2c2da86b35b38f2e1ec1fc8 (refs/heads/master:arch/arm/boot/dts) [4] a02b6794337286bc12c907c33d5d75537c240bd0 (refs/heads/master:drivers/gpu/drm/amd/include/asic_reg/vega10/NBIO/nbio_6_1_sh_mask.h) [5] 5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c (refs/tags/v2.6.11) [6] 1459754b9d9acc2ffac8525bed6691e15913c6e2 (589b754df3f37ca0a1f96fccde7f91c59266f38a^{tree}) [7] 78a269635e76ed927e17d7883f2d90313570fdbc (dae09011115133666e47c35673c0564b0a702db7^{tree}) [8] ce5f2e31d3bdc1186041fdfd27a5ac96e728f2c5 (refs/heads/master^{tree}) [9] 532bdadc08402b7a72a4b45a2e02e5c710b7d626 (e9ef1fe312b533592e39cddc1327463c30b0ed8d^{tree}) [10] f29a5ea76884ac37e1197bef1941f62fda3f7b99 (f5308d1b83eba20e69df5e0926ba7257c8dd9074^{tree})
私はこれがあなたにリポジトリ履歴のすべてのファイルの合計リストを与えると思います:
git rev-list --objects --all | git cat-file --batch-check="%(objectsize) %(rest)" | cut -d" " -f1 | paste -s -d + - | bc
あなたは置き換えることができ--all
treeish(とHEAD
、origin/master
枝の大きさを計算するなど)。