Gitlab库已损坏前端显示500错误解决方法

1.问题起因

办公网机房意外断掉,导致gitlab库文件损坏。开发打开gitlab显示500

2.查看日志

命令查看:gitlab-ctl tail

或者手动查看:/var/log/gitlab/gitlab-rails/production.log日志文件

gitlab Rugged::OdbError (Failed to inflate loose object.)

提示库文件损坏

3.处理方法

参考链接:

https://stackoverflow.com/questions/36546774/gitlab-repository-corrupted-showing-500-error-on-frontend

执行以下步骤后,库恢复正常

1. # cd gitlab/repositories/<namespace>/<reponame>.git 

2. # git fsck
If any error like below
error: object file objects/11/fbf0dfb1a54283e84044b5e99230efbafd77d8 is empty
error: object file objects/11/fbf0dfb1a54283e84044b5e99230efbafd77d8 is empty
fatal: loose object 11fbf0dfb1a54283e84044b5e99230efbafd77d8 (stored in objects/11/fbf0dfb1a54283e84044b5e99230efbafd77d8) is corrupt

3.  # find . –size 0 –delete  
This will delete all files which has 0 byte size and corrupt

4.  # git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (4970/4970), done.
error: HEAD: not a commit
error: refs/heads/master: not a commit
dangling commit de516dd3d99d13147b6e2f946fe5b8c0660e4eed

5.   Try to push code from local without add and commit 
# git push origin <branch>
If got below error
remote: error: Could not read 5329f756010fad47026f112dc7126bdaa2f9ad7f
remote: fatal: Failed to traverse parents of commit  8eecd866caa916a3b2e8550153f0bb5a54a28919
remote: aborting due to possible repository corruption on the remote side.
fatal: protocol error: bad pack header

6.  Go to cd gitlab/repositories/<namespace>/<reponame>.git
# rm –fr ref/head/<branchname>
# git fsck
notice: HEAD points to an unborn branch (master)
Checking object directories: 100% (256/256), done.
notice: No default references
dangling commit eb84ebc9010ea3d3d5646b4eab1bacd358178fbd

7.  Try to push code from local without add and commit 
# git push origin <branch>

Done your code updated successfully !!!

 

转载于:https://www.cnblogs.com/zhanmeiliang/p/7298188.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值