git上傳對象文件錯誤解決方案
? 時隔一個星期, 當我再次完成開發(fā)之后, 準備將代碼上傳, 卻出現(xiàn)了一個上傳代碼的錯誤, 記錄一下錯誤和解決方案
解決方案:
- 運行
git fsck --full
(base) ifeng@ubuntu:~/Desktop/luffycity$ git fsck --full
error: 對象文件 .git/objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520 為空
error: 對象文件 .git/objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520 為空
fatal: 松散對象 c9e590416bbe286dc32a17ddf14670ebb52e4520(保存在 .git/objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520)已損壞
- 在.git目錄下find . -type f -empty -delete -print 會刪除全部空文件
(base) ifeng@ubuntu:~/Desktop/luffycity$ cd .git
(base) ifeng@ubuntu:~/Desktop/luffycity/.git$ find . -type f -empty -delete -print
./FETCH_HEAD
./objects/cd/cd1a2512ad47d7e2290b02a2a77ea79277e7c9
./objects/c9/e590416bbe286dc32a17ddf14670ebb52e4520
./objects/6a/871d8bf9b841b8febcc3a4c7c6c17ac9557a79
./objects/82/01d128f3356e1cbe2c2413ff422c53974b80db
./objects/2c/cdc2e45330ea23f1fb2f1cf133c7e9dc54680b
./objects/2c/65cffca3b6403b675f19701f41e64f3166401f
./objects/71/420f984a2d039563d7b80cb295f37e55b45ad3
- 再次運行
git fsck --full
, 還是有錯,head指向元素不存在,是之前一個空文件,我們已經(jīng)刪了
(base) ifeng@ubuntu:~/Desktop/luffycity/.git$ git fsck --full
正在檢查對象目錄: 100% (256/256), 完成.
error: refs/heads/feature/user:無效的 sha1 指針 c9e590416bbe286dc32a17ddf14670ebb52e4520
error: refs/remotes/origin/feature/user:無效的 sha1 指針 c9e590416bbe286dc32a17ddf14670ebb52e4520
error: HEAD:無效的 sha1 指針 c9e590416bbe286dc32a17ddf14670ebb52e4520
error: 71420f984a2d039563d7b80cb295f37e55b45ad3:cache-tree 中無效的 sha1 指針
懸空 blob 38fae659ca427cf6d82705f281bd6549bb3bef41
懸空 tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
懸空 blob a517beeb35b0c70cd4b361ec6e085e58ef47c225
- 手動獲取最后兩條reflog, 運行
tail -n 2 .git/logs/refs/heads/feature/user
, 后面的部分就是上面信息的路徑
(base) ifeng@ubuntu:~/Desktop/luffycity$ tail -n 2 .git/logs/refs/heads/feature/user
03f77f97f3f2f687186f74b7ceaee4e9c6103dde 377adde104760d582bf76985a95f5c2262491b1c ifeng <ifeng190410@gmail.com> 1684228848 +0800 commit: feature: 注冊功能實現(xiàn)流程-客戶端請求發(fā)送短信并實現(xiàn)短信倒計時冷卻提示!
- head當前是指向最新的那一條記錄, 所以我們看一下parent commit即倒數(shù)第二次提交
git show 377adde104760d582bf76985a95f5c2262491b1c
(base) ifeng@ubuntu:~/Desktop/luffycity$ git show 377adde104760d582bf76985a95f5c2262491b1c
可以看到內(nèi)容是正常的
-
那么我們就重新設置head, 使其指向倒數(shù)第二條
git update-ref HEAD 377adde104760d582bf76985a95f5c2262491b1c
-
最后我們git push的時候發(fā)現(xiàn)還是有錯文章來源:http://www.zghlxwxcb.cn/news/detail-460958.html
(base) ifeng@ubuntu:~/Desktop/luffycity$ git push origin feature/user
error: refs/remotes/origin/feature/user 沒有指向一個有效的對象!
error: refs/remotes/origin/feature/user 沒有指向一個有效的對象!
To gitee.com:i__feng/luffycity.git
! [rejected] feature/user -> feature/user (fetch first)
error: 無法推送一些引用到 'git@gitee.com:i__feng/luffycity.git'
提示:更新被拒絕,因為遠程倉庫包含您本地尚不存在的提交。這通常是因為另外
提示:一個倉庫已向該引用進行了推送。再次推送前,您可能需要先整合遠程變更
提示:(如 'git pull ...')。
提示:詳見 'git push --help' 中的 'Note about fast-forwards' 小節(jié)。
根據(jù)錯誤提示執(zhí)行git pull origin feature/user
我們從遠程倉庫自動合并feature/user文章來源地址http://www.zghlxwxcb.cn/news/detail-460958.html
(base) ifeng@ubuntu:~/Desktop/luffycity$ git pull origin feature/user
來自 gitee.com:i__feng/luffycity
* branch feature/user -> FETCH_HEAD
自動合并 luffycityapi/luffycityapi/apps/users/serializers.py
Merge made by the 'recursive' strategy.
- 最后再去提交重新提交我們的代碼就完成了
(base) ifeng@ubuntu:~/Desktop/luffycity$ git push origin feature/user
枚舉對象中: 28, 完成.
對象計數(shù)中: 100% (27/27), 完成.
使用 4 個線程進行壓縮
壓縮對象中: 100% (13/13), 完成.
寫入對象中: 100% (14/14), 2.16 KiB | 736.00 KiB/s, 完成.
總共 14 (差異 6),復用 0 (差異 0)
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:i__feng/luffycity.git
c9e5904..ff1c1a9 feature/user -> feature/user
到了這里,關于git上傳對象文件錯誤解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!