git - 如何修复 git-lfs 服务器(gitlab)上损坏的文件?
问题描述
我们正在使用启用了 git-lfs (v.2.4.2) 的 GitLab 11.2.1-ee。
我们发现我们在服务器上的 git-lfs 中有损坏的对象。当我们跑
sudo gitlab-rake gitlab:lfs:check VERBOSE=1
, 我们有
- 1401..1600: Failures: 1
- LFS object: b675b00828707cd53dc5c130efce8a9d352e5efd8b9b29f06808810b6ebb5491: Checksum mismatch
现在,当我们尝试
git lfs pull
克隆时,我们得到了
Expected OID b675b00828707cd53dc5c130efce8a9d352e5efd8b9b29f06808810b6ebb5491, got 2c6abc2c4d29bd1c7f0041160ea15ea2765df10194a6e9ef3e6e2139c11fc67f after 12427595 bytes written
error: failed to fetch some objects from 'https://192.168.1.100/root/our_project.git/info/lfs'
我们应该如何修复这种腐败?
解决方案
解决了。
我们发现b6/75/b00828707cd53dc5c130efce8a9d352e5efd8b9b29f06808810b6ebb5491
服务器上文件内容的sha256sum等于2c6abc2c4d29bd1c7f0041160ea15ea2765df10194a6e9ef3e6e2139c11fc67f
(这似乎是不正确的),并且repo克隆上相同文件的内容是正确的(等于b675b00828707cd53dc5c130efce8a9d352e5efd8b9b29f06808810b6ebb5491
)。我们将b6/75/b00828707cd53dc5c130efce8a9d352e5efd8b9b29f06808810b6ebb5491
服务器上的文件内容替换为来自 repo 克隆的该文件的内容,现在一切正常。我们现在可以在新克隆中进行拉、推和更改分支,而不会出现任何错误。
为了在 xubuntu 上获得 sha256,我们使用了
cat b6/75/b00828707cd53dc5c130efce8a9d352e5efd8b9b29f06808810b6ebb5491 | sha256sum
在 Mac 上:
shasum -a 256 b6/75/b675b00828707cd53dc5c130efce8a9d352e5efd8b9b29f06808810b6ebb5491
推荐阅读
- java - 当它们只有使用杰克逊的值时如何读取根节点?
- c# - 处理级联多对多 EF Core?
- c++ - 为低 CPU 使用率编写服务
- image-processing - 处理草图更新但不绘制
- java - Java从 Iterator创建 Iterable
没有警告 - refactoring - 如何通过另一个函数获取结果过程的倍数函数?
- node.js - 为什么 NPM 模块不能完全平坦,包括依赖项?
- node.js - 如何从 lambda 中的 Secure REST API 获取数据以获取 Alexa 技能?
- reactjs - 为什么 Webpack / Babel 在不需要时将 React 添加到构建中?
- node.js - Cloudinary 节点包出错 - 意外令牌