git reset --hard 和 git reset --sort区别

git reset --hard 和 git reset --sort区别

有时候,进行了错误的提交,但是还没有push到远程分支,想要撤销本次提交,可以使用git reset –-soft/hard命令。

1.二者区别:

git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可;
git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉;

2、具体用法如下:

使用git log命令查看本地的所有提交


image

现在想要撤销最后一次提交,即上图中“OTMS-25838: rollback the modification in OrderDto”这个commit;
(1)git reset --hard使用示例:


image

使用命令git reset --hard 1c38838ad39b396e271cb10e2146a1d673b4a2b9撤回制定版本号(不包括该提交)之前的所有提交。
注意:上述命令执行成功之后,会彻底返回到回退前的版本状态,新发生的变更将会丢失。对于部分发生了变更,但是变更部分的文件夹存在未提交的文件可能导致目录非空而删除失败,此时需要自行处置。

(2)git reset –-soft使用示例:

初始状态,可见当前分支最后一个提交是debug the initialization page


image

现在要撤销该commit,但是又不能撤销该提交包含的更改,使用git reset --soft,执行结果为


image

image

可见commit取消了,代码更改并没有取消。

git revert 用法

git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销
作为一次最新的提交

  • git revert HEAD 撤销前一次 commit
  • git revert HEAD^ 撤销前前一次 commit
  • git revert commit撤销指定的版本,撤销也会作为一次提交进行保存。
    git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 12,767评论 1 26
  • 你是不是像我在太阳下低头, 流着汗水默默辛苦地工作。 你是不是像我就算受了冷漠, 也不放弃自己想要的生活。 你是不...
    贾小呆520阅读 2,812评论 0 0
  • 欲上枫桥薄雾,更逢霜路重阳。蓬芦枯絮惹花黄。小舟横野渡,谁钓一寒江。 无奈东篱寂寞,何堪北渚思量。莫教携酒向疏狂。...
    铨斋阅读 4,172评论 6 30
  • 前几天因大雪,教学楼前边太阳光照不到的地方,还结着厚厚的冰层,天天有学生一不小心就摔倒。 后天就是学业水平考试,为...
    闹闹小乖乖阅读 1,364评论 0 1
  • 我慌慌张张收回碗,瞧见那淡褐色的米饭将碗里的鱼圆裹了个严实,刚要落下叉子,又听老太高声说:"捣碎,捣碎啊。"她...
    芊屿千寻阅读 4,427评论 0 14

友情链接更多精彩内容