【Git】git reset 和 git revert区别

git reset

  • 实现:git reset的作用是修改HEAD的位置
  • git reset [–soft | --mixed | --hard

--mixed
会保留源码,只是将git commit和index 信息回退到了某个版本.
git reset 默认是 --mixed 模式(git reset --mixed === git reset)
--soft
保留源码,只回退到commit 信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.
--hard
源码也会回退到某个版本,commit和index 都回回退到某个版本.(注意,这种方式是改变本地代码仓库源码)

  • 实现过程:
    在这里插入图片描述

  • 适用场景:如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。

  • 操作:
    1、commit后为版本号
    git log
    在这里插入图片描述

    2、修改目标版本
    git reset --hard ‘目标版本号’

    3、查看版本信息,此时本地的HEAD已经指向之前的版本
    git log

    4、提交 (git push会报错 因为提交的版本比服务器版本低)
    git push -f

    5、如果不想解决冲突的话可以取消撤回
    git revert --abort

git revert

  • 原理:撤销某一版本的提交但不影响其他的版本。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。

  • 实现过程:
    在这里插入图片描述

  • 操作:
    1、查看提交版本
    git log

    2、指定修改的版本
    git revert -n ‘版本号’

    3、提交修改
    git add . → git commit -m 版本名

    4、推送服务器
    git push

猜你喜欢

转载自blog.csdn.net/m0_46537958/article/details/108326551