突然断电导致git损坏修复

2024-03-24 06:44

本文主要是介绍突然断电导致git损坏修复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

使用ide开发时突然断电启动后所有文件都成了没有提交的文件。打开git视图日志也消失不见

# git命令执行结果如下
git status
No commits yetChanges to be committed:(use "git rm --cached <file>..." to unstage)new file:   .github/FUNDING.ymlnew file:   .gitignorenew file:   DESIGN.mdnew file:   LICENSEnew file:   PROBLEM.mdnew file:   README.mdnew file:   xxx/pom.xmlnew file:   xxx......new file:   xxxn
git pull
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.git pull <remote> <branch>git branch
fatal: Failed to resolve HEAD as a valid ref.
git reflog
fatal: your current branch appears to be broken

分析

突然断电应该时git文件受损导致

  • 进入项目下的.git目录
  • 分析config文件是否损坏,如损坏进行修复

    如格式已损坏或空白 去别的项目.git下把config拷贝过来
    按照自己项目的情况进行修改
    如添加和删除本地分支和远端分支节点
    修改远端分支地址

    # 格式如下
    [core]repositoryformatversion = 0filemode = falsebare = falselogallrefupdates = truesymlinks = falseignorecase = true
    # 远端创库
    [remote "origin"]# 远端创库地址url = https://gitee.com/xxx/xxx.gitfetch = +refs/heads/*:refs/remotes/origin/*
    # 本地master创库
    [branch "master"]remote = originmerge = refs/heads/master
    # 本地dev创库
    [branch "dev"]remote = originmerge = refs/heads/dev	
    
  • 进入.git/refs/heads目录下打开当前分支文件查看是否有内容

如打开dev文件 查看里面的内容 该文件保存的是dev分支最后一次提交的commitId
如4146261a90c75d89235fee5566852dd996326666

  • 进入.git/refs/remotes/origin目录查看当前远程分支是否有内容

参考上一步
origin为远程创库副本名称 如果为其它名称需进入对应目录

  • 如果没有内容去日志文件或远端git创库查看提交id写进去
    • 本地创库分支文件无内容
      # 提交记录格式 
      # 4146261a90c75d89235fee5566852dd996326666 才是commitId
      daab13154a48de2325ca4d4b3c68d80d25a10def 4146261a90c75d89235fee5566852dd996326666 angel <angel@163.com> 1711102685 +0800	commit: 汇总功能一些controller里的逻辑移动到service里
      

      去.git\logs\refs\heads下
      打开对应分支文件 翻动到最下面 参考上面的提交记录格式 把最后提交的commitId复制出来转贴到上一步的空白分支文件里
      复制的一定要是commitId不要复制错了

    • 远程创库分支文件无内容
      • 本地远程创库副本是最新的

        去远程创库网页复制最新的commitId到对应文件里

      • 本地创库副本不是最新的

        根据最后一次提交记录 到提交记录文件下寻找commitId或去远程创库web端寻找
        提交记录文件
        本地创库的提交记录可以根据提交时的描述查找
        远端创库副本提交记录在.git\logs\refs\remotes\origin下打开对应分支拖到最下面复制commitId

        e0e4c6aab3a9ce1f02671e5c8fb907bab642e272 4146261a90c75d98471fee5566852dd996326666 angel <angel@163.com> 1711161193 +0800	update by push
        

修复

  • config修复

    项目下.git/config损坏
    拿份好的替换
    在修改分支部分和替换远端创库地址

  • 本地分支文件修复

    项目下.git/refs/heads下分支文件空白
    去.git\logs\refs\heads下
    打开分支文件拉到最下面
    复制commitId到空白文件中

  • 远端分支文件修复

    项目下.git/refs/remotes\origin下分支文件空白
    去.git\logs\refs\remotes\origin下
    打开分支文件拉到最下面
    复制commitId到空白文件

这篇关于突然断电导致git损坏修复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/840754

相关文章

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

javacv依赖太大导致jar包也大的解决办法

《javacv依赖太大导致jar包也大的解决办法》随着项目的复杂度和依赖关系的增加,打包后的JAR包可能会变得很大,:本文主要介绍javacv依赖太大导致jar包也大的解决办法,文中通过代码介绍的... 目录前言1.检查依赖2.更改依赖3.检查副依赖总结 前言最近在写项目时,用到了Javacv里的获取视频

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

游戏闪退弹窗提示找不到storm.dll文件怎么办? Stormdll文件损坏修复技巧

《游戏闪退弹窗提示找不到storm.dll文件怎么办?Stormdll文件损坏修复技巧》DLL文件丢失或损坏会导致软件无法正常运行,例如我们在电脑上运行软件或游戏时会得到以下提示:storm.dll... 很多玩家在打开游戏时,突然弹出“找不到storm.dll文件”的提示框,随后游戏直接闪退,这通常是由于