git reset 之后,再找回失去的代码

Git回退与恢复:使用gitlog和gitreflog
文章介绍了如何使用gitlog查看提交历史,以及在回退到某个提交后,如何利用gitreflog找到丢失的提交ID,以便在需要时恢复。当执行gitreset--hard回退到特定提交时,之前的提交记录可能会丢失,但gitreflog能保存这些操作的历史,方便找回。

有时候,我们会遇到这种情况
获取提交记录

git log --pretty=one

比如,git 提交记录如下

1f0e8646ee5c5e7bfffe0ce38fe183300c926065 (HEAD -> main, origin/main) five
dcd605c388481e68d396d6c27949e9de4a11ab77 fourth
ef98780ec960f95c2ab1a9281f02dc01e2da65b5 third
47b662590820c3dd0871573f8324d2ba9f7c7ea1 second
788917326ae068b12baf5bb698cc6e6defddd968 fist
8ff36ee80a21b1ce967c50c089d49ddfc3d5af77 添加文件
4509c6ed71c4794e32eb3e02b98f7d1e9f27e50c Initial Commit

即,我们目前在five 处,但是想回退到fourth 处
这时候,我们可以执行

git reset --hard dcd605c388481e6

这样就回退到了fourth 处

这时候,我们再获取提交记录,获取到如下

dcd605c388481e68d396d6c27949e9de4a11ab77 (HEAD -> main) fourth
ef98780ec960f95c2ab1a9281f02dc01e2da65b5 third
47b662590820c3dd0871573f8324d2ba9f7c7ea1 second
788917326ae068b12baf5bb698cc6e6defddd968 fist
8ff36ee80a21b1ce967c50c089d49ddfc3d5af77 添加文件
4509c6ed71c4794e32eb3e02b98f7d1e9f27e50c Initial Commit

我们已经会退到了fourth 处,five的提交记录已经找不到了,
但是,如果我们突然反悔了,又想回到five 处,应该怎么办呢
,这时候,强大的git reflog 就派上用场了

执行下面命令

git reflog

获取到如下内容

dcd605c (HEAD -> main) HEAD@{0}: reset: moving to dcd605c388481e6
1f0e864 (origin/main) HEAD@{1}: commit: five
dcd605c (HEAD -> main) HEAD@{2}: commit: fourth
ef98780 HEAD@{3}: reset: moving to ef98780
47b6625 HEAD@{4}: reset: moving to 47b6625
ef98780 HEAD@{5}: reset: moving to ef98780
47b6625 HEAD@{6}: reset: moving to HEAD^
ef98780 HEAD@{7}: commit: third
47b6625 HEAD@{8}: commit: second
7889173 HEAD@{9}: commit: fist
8ff36ee HEAD@{10}: commit: 添加文件
4509c6e HEAD@{11}: commit (initial): Initial Commit

如上面内容所示,所有的提交和reset记录都在里面,我们
如果想回退到five ,就可以通过five 的 commitid进行会退

git reset --hard 1f0e864

就可以了,注意,这里一定要带上–hard,因为这里是要强行把失去的代码补回来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值