我相信,我的Git庫是不是在良好的狀態,其中,當我做了如何修復的Git零填充文件模式警告
git fsck
我會在頂部以下警告。
103b5dd53f7a96f8e3a02aea0d3d4d9bb19644ed: contains zero-padded file modes
bb4729593e76f66b46292ad6ae61bfe909558337: contains zero-padded file modes
4709aa73691ce7da36dd22ccfd157c4514395330: contains zero-padded file modes
我嘗試了以下(由同事建議)找到違規提交,以便我可以糾正它們。我嘗試了以下方法。
- 通過所有提交從
git rev-list HEAD
。 - 對於每個提交,請執行
git ls-tree -rd
以查找所有相關對象SHAs。 - 看看其中的任何一條,與
git fsck
中的上述條件匹配。
上述邏輯對我來說似乎是正確的,但它無法找到違規提交。
git rev-list --all --remotes | while read commit; do git ls-tree -rd $commit | grep -E "103b5dd53f7a96f8e3a02aea0d3d4d9bb19644ed|bb4729593e76f66b46292ad6ae61bfe909558337|4709aa73691ce7da36dd22ccfd157c4514395330" && echo -e "HIT @ $commit\n\n"; done
我們在這裏錯過了什麼?我們怎麼能找到有問題的提交或文件有問題?最後,我想修復存儲庫。
你試過更簡單的grep:'grep「103b5dd53」',看看是否至少有一個提交出現? – VonC
是的,我一次也做過一次,但沒有出現。 –
所以這些SHA1s應該來自上游回購,有點像http://stackoverflow.com/questions/4864740/github-repo-corruption-sha1-collision – VonC