美文网首页饥人谷技术博客
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