git reset 怎么还原_git reset后如何恢复

“新来的实习生把自己做了一个月的功能给覆盖了,向我求救,要不要帮他?——编程三分钟”

第 8 篇

找回弄丢的代码

新来的实习生【悲郭】因为不太熟悉git的使用,总是把自己的代码给弄丢了,这次好了,把辛苦写了一个月的功能全弄丢了。还好我力挽狂澜帮他恢复了过来。下面我们分两种代码丢失的场景情况来讨论。

恢复曾今提交过的记录

你使用了git reset --hard commit—id命令,将工作区的提交穿越到你指定的commit里,这个时候你会发现git log根本没有记录这之后的提交记录,像下面这个样子,你是不是会非常着急呢?

不要太紧张,Git提供了一个命令git reflog用来记录你的每一次改变目录树的命令,使用好他就可以很方便的恢复你的提交:

刚才我们提到一个关键字目录树,那么什么是目录树呢?

我们的主线往往是一根直线,多一个分支相当于多一个分叉,无数分支纵横交错就像一颗树状的结构,所以我们称之为目录树。commit rebase reset merge这些都是改变目录树的操作。

这个恢复丢失代码方法也只有存在改变目录树的操作才恢复的回来

git log 是一样的,也可以看到所有分支的历史提交,不一样的是看不到已经被删除的commit 记录和 reset rebas

你可能感兴趣的:(git,reset,怎么还原)