git版本回退

跟着廖老师写的git版本回退,在创建的test仓库中实现了下,收获很大。

回到过去

  • 查看日志

在使用中,如果你不小心改乱了一些内容,或者误删了,可以从最近的一个commit恢复,然后继续工作。
log中记录了你的一些操作。你可使用下面命令查看:

git log

git版本回退
这里一共提交了三条记录,最近的一次是merge,上一次是first version,最早的一次是first commit.
如果想看简洁一点的,可以加上--pretty=oneline
这时候每一行输出的是commit id号和commit说明。
git版本回退

  • 版本回退

    git 通过日志找到自己想回去的版本,版本号可以选择那一大串的commit id的前几个或者用HEAD逆推,HEAD是当前版本,HEAD^ 上一个版本,HEAD^^是上上一个版本,再往上容易数不过来,我们用HEAD~100表示回到上100个版本。

git reset --hard HEAD^

git版本回退
回到merge之前的版本

git reset --hard 4552b

git版本回退
再往前回退了一个版本。

回到未来

git的版本回退速度很快,它在内部有一个指向当前版本的HEAD指针,当你回退时,仅仅是把HEAD指向你的commit那个版本,顺便把工作区的文件更新了。
你可以回退之前的版本,也可以回到未来的版本,还是之前的命令,输入未来的commit号。

  • 查看未来记录

此时你用git log无法查到未来的commit号,git还有另一个命令,

git reflog

记录了你的HEAD的变化。
git版本回退

  • 回到未来

回到merge时候:

git reset --hard 3c605aa

git版本回退
这时候又回到merge的版本了。

然后你就可以在过去和未来之间自由的穿梭了~

引用链接

相关文章: