Git-版本回退

学习笔记,质量不高,纯属加深个人理解,请勿浪费时间阅读。

git diff

$ git diff filename 

比较文件

git log

查看版本提交历史记录,其中commit_id 可用以回退版本

$ git log

这里写图片描述

git log –pretty=oneline (界面美观=设置1行显示)

$ git log --pretty=oneline

--pretty=oneline

版本回退

使用 reset --hard HEAD^, HEAD 目前指向 commit_D29ED8…..(上一次提交)

$ git reset --hard HEAD^

关于hard后面再说
此处HEAD^^代表上一次提交,如果^^即上上次,假设有100次,HEAD~100方式处理会更好

回到过去-再穿越时空回到未来

假设有三个分支

  1. a(head)
  2. b
  3. c

目前head在A分支中。如果我们reset --hard HEAD^即把当前的(head)指向B中。那么A分支便会”消失”,如下图

  1. b(head)
  2. c

如果再次回到A分支,有两种选择

第一种:假设未关闭窗口,直接输出git log找到其分支的 commit_id,然后git reset --hard <commit_id>

git reflog 记录每一次命令

使用以下命令

$ git reflog 

得出当前提交的信息
版本记录

此时使用commit_id前缀即可回滚到指定的版本。

原理图

小结

  • HEAD指向的版本就是当前版本,因此GIT允许我们在版本的历史之间穿梭,使用git reset --hard commit_id
  • 穿梭前,使用git log查看提交历史,以便回退到哪个版本
  • 要重返未来,使用git reflog查看命令历史,以便回到哪个版本
  • git commit时尽量详细描述,便于回退版本时方便自己查找
阅读更多
换一批

没有更多推荐了,返回首页