“项目要回到1个月前的那个状态?应该怎么做?”
“好不容易修改好了新版本,老板却说要放弃,做回之前的项目再改改?”
…
如果你不是通过硬盘的方式一次次保存,而是采用git这个分布式版本控制系统,那么你就可以轻松回退到曾经写过的任何一个版本?对,是任何一个,从0开始那会。
只要一个要求:你要每次都提交版本。而不是放到暂存区。
案例:
比如你提交的版本顺序依次是
C3是你目前git上所在的位置。
此时,我们通过git log方式,找到所有版本的commitID
(假设分别是)
当然,这都是简化了id,实际上commitID是一长串数字
只需几个命令搞定:
于是,我们执行:
此时,再一下:
发现commitID变成了
后面的不见了!
莫急。因为 Git reset hard HEAD^^ 命令把版本回退了两个,如何再找到C12345呢?
Gig reset hard commitid登场了
这个命令的意思是:返回到任何一个commitID的版本。
不过,现实情况是:你不知道什么时候突然关闭了黑框,之前git log保存的commitid也都找不着了。通过git log方法再找id也会找不到未来的,怎么办呢?
Git reflog登场了!
这个命令会把所有的操作都打印出来,据此寻找最新一次的reset 里的commitID即可.
例如,这是我提交的一个代码,通过reflog方式查看:
只需找到HEAD@里的commitid,然后再让版本跳到未来的任何版本:
把工作版本打乱,git都不当一回事!
作者介绍:
yixiang / 北 京,毕业于上海理工工业设计系,前端工程师 ,nodejs爱好者,时间管理爱好者,每日一小步,愿与你同行..
领取专属 10元无门槛券
私享最新 技术干货