git reset --hard 找回本地代码

情况1: 没有add,没commit

可以尝试硬盘级恢复,可能成功,一般无解。

情况2: 有add,没commit

# git fsck 命令可以用来检查 Git 仓库的完整性,可能会显示一些未被引用的树对象,可能包含更改。
git fsck


# 输出
------------------------------------------------------------------------------------
F:\code\projects\17_freertosDev\cameraLcd>git fsck --unreachable
Checking object directories: 100% (256/256), done.
notice: HEAD points to an unborn branch (last-commit)
notice: No default references
dangling tree ece95176d7a0d7bacf01180f02615fe7d0cf3a67
dangling tree 32729e95291b19662ddbcca368caf64700f6586a
# 查看悬挂树的内容
git show ece95176d7a0d7bacf01180f02615fe7d0cf3a67

# 输出
------------------------------------------------------------------------------------
F:\code\projects\17_freertosDev\cameraLcd>git show ece95176d7a0d7bacf01180f02615fe7d0cf3a67
tree ece95176d7a0d7bacf01180f02615fe7d0cf3a67

.gitignore
.mxproject
.vscode/
CMakeCache.txt
CMakeFiles/
CMakeLists.txt
Core/
Drivers/
Makefile
Middlewares/
README.md
STM32F103.svd
STM32F103ZETx_FLASH.ld
assets/
build.ninja
cmake_install.cmake
cumx_lcdcamera_makefile.ioc
startup_stm32f103xe.s
# 查看该悬挂树详细内容
git ls-tree ece95176d7a0d7bacf01180f02615fe7d0cf3a67

# 输出
-----------------------------------------------------------------------------
100644 blob f3b6ad84171e543e390715fd766ab28c85266b1e    .gitignore
100644 blob 4fd69c5f76e47c6d8c1c8f5f17e6db237a3db48b    .mxproject
040000 tree 4261737cc101f32052f0e7a1f355f832913b1d87    .vscode
100644 blob 48b8c08110e366e2984728880af0301132442e53    CMakeCache.txt
040000 tree 0887348f47dceb7275b3c4539c4318d3e40e96a2    CMakeFiles
100644 blob ae022478c363746081a42b7fe05504eb9287b168    CMakeLists.txt
040000 tree ac5f9fa64c10367c2defdf3e7747dbd3857b1e4a    Core
040000 tree 9a41c35d0b317c74ec5f188d317ca9a8e5708c5d    Drivers
100644 blob 97e8b2c269b95673e32ba08e007e348552bd32a5    Makefile
040000 tree 39bf4eab30b4072172726f6c180acfe441713ee4    Middlewares
100644 blob e74184189589a30928af23cb598453b9672ffaac    README.md
100644 blob 42e761bc67d40ffbece950c772cfd8e1ef23826d    STM32F103.svd
100644 blob 9083fb420b9f13c79b32a41bef42020abf43a412    STM32F103ZETx_FLASH.ld
040000 tree e4f6466e0d35f789550451c3e79b99c9abc3da5c    assets
100644 blob ee0bd0946af7a84b1255842f77b86edbaf47ec7d    build.ninja
100644 blob 866c12da78991af1a0d8b1e404e01840ec2fa42a    cmake_install.cmake
100644 blob 30e2f43e0ad58228363285914bc55dcf6c08fa48    cumx_lcdcamera_makefile.ioc
100644 blob ef23cee5e3694342f181e8272b2b0a91dfa6b097    startup_stm32f103xe.s

# 或者工作区中的全部文件
-----------------------------------------------------------------------------
git restore --source=ece95176d7a0d7bacf01180f02615fe7d0cf3a67 --staged --worktree .
# 新建分支
git checkout -b recover-branch

# 逐个恢复
git checkout ece95176d7a0d7bacf01180f02615fe7d0cf3a67 -- .gitignore
git checkout ece95176d7a0d7bacf01180f02615fe7d0cf3a67 -- .mxproject
git checkout ece95176d7a0d7bacf01180f02615fe7d0cf3a67 -- CMakeCache.txt
git checkout ece95176d7a0d7bacf01180f02615fe7d0cf3a67 -- CMakeLists.txt
git checkout ece95176d7a0d7bacf01180f02615fe7d0cf3a67 -- Makefile
...

情况3: 有add, 有commit

git  reflog

git reset --hard HEAD@{7} #HEAD@{xxx} # 退回到指定head

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值