git版本回退
跟着廖老师写的git版本回退,在创建的test仓库中实现了下,收获很大。
回到过去
- 查看日志
在使用中,如果你不小心改乱了一些内容,或者误删了,可以从最近的一个commit恢复,然后继续工作。
log中记录了你的一些操作。你可使用下面命令查看:
git log
这里一共提交了三条记录,最近的一次是merge,上一次是first version,最早的一次是first commit.
如果想看简洁一点的,可以加上--pretty=oneline
这时候每一行输出的是commit id号和commit说明。
-
版本回退
git 通过日志找到自己想回去的版本,版本号可以选择那一大串的commit id的前几个或者用HEAD逆推,HEAD是当前版本,HEAD^ 上一个版本,HEAD^^是上上一个版本,再往上容易数不过来,我们用HEAD~100表示回到上100个版本。
git reset --hard HEAD^
回到merge之前的版本
git reset --hard 4552b
再往前回退了一个版本。
回到未来
git的版本回退速度很快,它在内部有一个指向当前版本的HEAD指针,当你回退时,仅仅是把HEAD指向你的commit那个版本,顺便把工作区的文件更新了。
你可以回退之前的版本,也可以回到未来的版本,还是之前的命令,输入未来的commit号。
- 查看未来记录
此时你用git log
无法查到未来的commit号,git还有另一个命令,
git reflog
记录了你的HEAD的变化。
- 回到未来
回到merge时候:
git reset --hard 3c605aa
这时候又回到merge的版本了。
然后你就可以在过去和未来之间自由的穿梭了~