git-reflog-回滚本地代码

4次阅读

共计 436 个字符,预计需要花费 2 分钟才能阅读完成。

背景

  • 程序员 A 在本地进行了三次 commit ‘demo1’、’demo2’、’demo3’
  • 程序员 A 不小心进行了回滚 git reset –hard ‘commit1’, 回滚到第一次提交
  • 程序员 A 又修改了文件并进行了 commit, ‘demo4’

问:如何找回被 reset 的两次 commit,并合并最新的一次 commit ‘demo4’

使用 git log 查看,仅能看到 demo1 和 demo4 的提交记录

git reflog

git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
恢复步骤

git reflog 
git reset  --hard  hash


列出所有的提交记录,然后就可以执行回滚了,这里需要回滚到 demo3 的提交

已经恢复到之前的代码了,那么问题来了,demo4 的提交被吃掉了,该怎么解决呢?

git cherry-pick

git cherry-pick 能够把另一个分支的一个或多个提交复制到当前分支
恢复步骤

git cherry-pick  hash


END,大功告成
正文完
 0