入门第 11 / 13 节25 分钟 · 实操
恢复丢失的工作
Git 课程的一部分
总有那么一次,你敲下一条命令,回车,看着终端不动声色地打印出一行盖棺定论的话,然后意识到自己刚刚删掉了一整天的活。谁都干过。好消息是,而且这是整个 Git 里最让人安心的一件事:只要你提交过,它几乎肯定还在。分支不再指向某些提交时,Git 并不会把它们扔掉。它会把这些提交在存储里搁上大约一个月,还会给你的分支曾经待过的每一个位置记一本私人日记,好让你摸回去。
有一个重要的界限,值得先说在前面。这张安全网只能接住某个时刻被提交过的工作,也就是用 git commit 存进快照的那些。只在编辑器里躺着、从没暂存也从没提交过的改动,压根不在 Git 的存储里,所以一条 git restore 把它们抹掉,那就是真抹掉了。这正是"早提交、勤提交"的理由,哪怕提交的是乱糟糟的半成品。一次提交是一个存档点,不是一份公开声明,历史随时可以事后收拾干净。
你将学到什么
- Git reflog
- Recovering from reset --hard
- Git fsck --lost-found
- 30-day grace period
