我的問題是如何驗證克隆存儲庫的實際大小,與Github上的大小進行比較,以自動檢查回購是否已正確下載。如何從GitHub驗證克隆回購的正確大小?
問題是由GitHub API給出的大小與克隆回購的大小不匹配。 這是我做的:
我使用GitHub的API
$呼應https://github.com/jemole/drScratch獲得庫的大小| perl -ne'打印$ 1如果m!([^ /] +/[^ /] +?)(?:.git)?$!' | xargs -i curl -s -k https://api.github.com/repos/'{}'| grep的大小
輸出: 「大小」:55617,
我克隆庫,並計算所下載的文件夾的大小
$ git clone https://github.com/jemole/drScratch
$ du -s drScratch
輸出:69104 drScratch/
謝謝!
你試圖通過比較大小與回購實現什麼? git在退房時有一些內置的完整性檢查。如果你真的想推出自己的,使用更可靠的東西,如哈希檢出文件 – wonderb0lt
@ wonderb0lt可以使用[git fsck](https://git-scm.com/docs/git-fsck)來驗證git數據,然後檢查遠程頭的已知好的散列。保證指向相同的數據,禁止昂貴的SHA1衝突。 –
如果你只是計算'.git'目錄中所有文件的總大小,它會給你一個關於該磁盤上該文件夾大小的提示。如果您嘗試將其與在另一個克隆上執行相同操作的結果進行比較,那麼您需要意識到有很多事情可能會有所不同。包裝,垃圾和各個階段的修剪等等。這樣的事情會有所作爲。 –