将某次提交作为新的提交
访问量:2603

一、简介

在说git reset命令的时候,我们说过,它是直接修改当前分支对应的commitId,如果当前分支是dev分支,即其修改的是.git/refs/heads/dev里面的内容。如下:

即将指向1,改到,指向2。然后根据参数,判断是否需要把改动,映射到暂存区以及工作区。

说白了,git reset命令是丢弃git某次提交前面的所有提交

如果不知道dev分支改动前指向的commitId,其恢复改动是比较麻烦的。所以,git reset往往用在私有分支上版本回退,比如舍弃一些没有必要合并到主分支的提交。在公共分支上面进行代码回滚,人们往往倾向选择使用git revert命令,因为git revert是通过一个新的提交,来覆盖上一个版本的改动,如下:

git revert常用方法如下:

git revert commitId

二、常用参数

参数说明
-e, --edit
运行你编辑git revert中提交的备注信息,该参数是默认参数。
--no-edit该参数和-e, --edit正好相反。
-n, --no-commit控制git revert回退以后,不提交一个commit。

三、git revert和git reset区别

1、git revert的撤销某次操作,是提交一个新的commit,便于查取消撤销。

2、git  reset可以针对某个文件或是路径进行撤销。