美文网首页饥人谷技术博客
git reset 与git revert基础

git reset 与git revert基础

作者: gtx7970 | 来源:发表于2018-01-02 16:07 被阅读0次

    基本概念

    git仓库可分为3个部分组成:工作目录、 缓存区、 提交历史


    git reset

    在提交层面上,reset 将一个分支的末端指向另一个提交。

    实例

    1. 新建一个文件夹aa,创建a.md,输入hello,初始化为git仓库,依次执行添加并提交。


    2. 修改a.md(改为为hello world),添加并提交


    1. 再次修改a.md(改为hello world zdy),添加并提交


    2. 查看版本,发现有3个提交历史。


    3. 执行 git reset 命令,例如 :git reset HEAD~1(返回到上次提交历史) 查看状态,暂存区发生改变,查看提交历史发现最近一次提交已移除。而工作区内容没有变化。


    1. git reset -soft – 缓存区和工作目录都不会被改变
      git reset -mixed –即默认状态下的git reset, 缓存区和你指定的提交同步,但工作目录不受影响
      git reset -hard – 缓存区和工作目录都同步到你指定的提交

    git revert

    首先撤销某一个commit提交,同时生成一个新的commit,从而不破坏历史版本
    Revert 撤销一个提交的同时会创建一个新的提交。

    实例

    仍然以上例中文件演示,
    1.报错,此时打开a.md,修改


    1. 查看状态


    3.执行新增了一个提交历史,而原来那个提交历史仍然存在。


    二者区别

    1. git revert会产生新的提交,并不会真正删除history。git reset 则会删除history。
    2. git revert 只是改变提交层面,而不涉及文件层面的操作

    相关文章

      网友评论

        本文标题:git reset 与git revert基础

        本文链接:https://www.haomeiwen.com/subject/hpuugxtx.html