git reset 与 git revert

来源:互联网 发布:mac怎么重装osx系统 编辑:程序博客网 时间:2024/04/28 18:06
发现git帮助中居然没有git revert(如下图),现就git reset 与git revert的用法做个小节。

这里写图片描述

reset

reset是指将当前head的内容重置,不会留任何痕迹。git reset --hard HEAD~3会将最新的3次提交全部重置,就像没有提交过一样。根据--soft --mixed --hard,会对working tree和index和HEAD进行重置。那么问题来了,使用git reset后如何恢复被清除的版本呢:

1.使用git reflog获得commit时的Id,如下图:

这里写图片描述

2.使用git reset id就可以恢复了,和 git revert commitSHA-1类似,如下图:

这里写图片描述

revert

revert是撤销某次提交,但是这次撤销也会作为一次提交进行保存。此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交* git revert HEAD                  撤销前一次 commit* git revert HEAD^               撤销前前一次 commit* git revert commitSHA-1 (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容另外,使用git reset在merger的过程中有时还会出现冲突,且把历史操作信息删除了;所以,建议用git revert比较好。
0 0
原创粉丝点击