Git仓库损坏HEAD文件反复丢失无法提交该如何修复
Git仓库损坏修复步骤
- 第一步:排除云同步干扰
开启WiFi后HEAD文件自动消失、手动创建的HEAD被自动重命名为冲突副本,是因为当前仓库所在目录被云同步工具(如OneDrive、Dropbox、各类国产云盘)同步导致,首先彻底关闭所有同步该目录的云同步软件,或将仓库下的.git目录加入同步软件的忽略/排除列表,避免后续文件被同步逻辑篡改。 - 第二步:修复HEAD文件
关闭同步后,找到.git目录下的*HEAD (VAVRIK-PC's conflicted copy 2021-05-27)*文件,将其重命名为HEAD,检查文件内容应为ref: refs/heads/master,内容不符可手动修改。此时运行git status验证仓库是否能被正常识别。 - 第三步:修复无效对象报错
invalid object报错是因为Git对象库中对应文件的哈希对象损坏,可按以下顺序操作:- 先完整备份整个仓库目录到其他路径,避免操作失误丢失本地修改
- 运行
git add cascade_flux/.gitignore重新暂存该文件,生成新的哈希对象 - 尝试重新执行commit操作,如果仍然报错,运行
git fsck --full扫描所有损坏的Git对象,根据扫描结果逐一修复 - 如果对象损坏数量较多,更简单的方案是:备份所有本地已修改的未提交文件,重新克隆远程仓库到新目录,将备份的修改文件覆盖到新克隆的仓库中,再重新执行add、commit操作即可。
内容的提问来源于stack exchange,提问作者Martin Vít Vavřík
相关产品推荐
相关产品推荐

