使用方法
不管是修改、压缩还是撤销提交记录,都有可能造成提交的丢失,那么该如何找回原来的提交呢?
最常用的方法,是使用 git reflog
指令,reflog 中记录着每一次提交或改变分支的值。
执行 git log
,列出 bugfix 分支上的所有提交:
$ git checkout bugfix
$ git log
commit 05eff054b9690250b97e910520677d3c5e39e156 (HEAD -> bugfix, origin/bugfix)
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Fri Mar 1 11:15:51 2024 +0800
第二次修改bugfix
commit da135880e3805b027f33e873da6bd02e5cb2099f
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Fri Mar 1 11:14:46 2024 +0800
修改bugfix
commit ca5ebf0f7e0438c514b9039594e86b6bc1ef64e2
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Tue Jan 30 16:24:42 2024 +0800
first commit
(END)
执行变基操作压缩前两次的提交记录:
$ git rebase -i ca5ebf0
$ git log
commit 601f7a53bdd68f5f17e381182b3b2b7df1d9c1d4 (HEAD -> bugfix)
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Fri Mar 1 11:14:46 2024 +0800
修改bugfix
commit ca5ebf0f7e0438c514b9039594e86b6bc1ef64e2
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Tue Jan 30 16:24:42 2024 +0800
first commit
(END)
如果想恢复压缩的提交,首先可以通过执行 git reflog
指令来查看曾经做过什么。
$ git reflog
601f7a5 (HEAD -> bugfix) HEAD@{0}: rebase (finish): returning to refs/heads/bugfix
601f7a5 (HEAD -> bugfix) HEAD@{1}: rebase (squash): 修改bugfix
da13588 HEAD@{2}: rebase (start): checkout ca5ebf0
05eff05 (origin/bugfix) HEAD@{3}: commit: 第二次修改bugfix
da13588 HEAD@{4}: commit: 修改bugfix
ff34906 (origin/main, main) HEAD@{5}: checkout: moving from main to bugfix
...
05eff05 看起来就是最后一次提交,可以通过 git reset
来恢复它:
$ git reset 05eff05
$ git log
commit 05eff054b9690250b97e910520677d3c5e39e156 (HEAD -> bugfix, origin/bugfix)
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Fri Mar 1 11:15:51 2024 +0800
第二次修改bugfix
commit da135880e3805b027f33e873da6bd02e5cb2099f
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Fri Mar 1 11:14:46 2024 +0800
修改bugfix
commit ca5ebf0f7e0438c514b9039594e86b6bc1ef64e2
Author: zhanglianwei <zhanglianwei@meituan.com>
Date: Tue Jan 30 16:24:42 2024 +0800
first commit
(END)
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦