git revert和 git reset

  • 当你提交多次后忘了每次提交的内容后你就希望可以查看一下这就会用到git loggit show这两个命令. 如图可以通过diff 看出改变了什么
    git revert和 git reset_第1张图片
    test_1.PNG

当提交数很大时可以添加参数来使用简略查看提交的id.

git log --pretty=oneline
添加参数
  • 使用下面的命令会打开如图vim界面. 进行修改保存即可覆盖之前的提交信息
git commit --amend
git revert和 git reset_第2张图片
修改提交信息
git revert和 git reset_第3张图片
撤回上一步

硬回退 git reset --hard [commit]

重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致

添加 -hard参数并且选取提交版本使head指向指定的提交,即形成了版本后退前进.

git revert和 git reset_第4张图片
--hard参数

由图中可以看出使用 git reset --hard HEAD^git reset --hard [commit id] 效果是一样的,HEAD^可以写成HEAD~1,回退几个版本就写几. 可以想到 git reset --hard [commit id]也可以实现版本回退,跳转.原理就是讲head指向所指定的commit.

软回退git reset --soft [commit]

工作区和暂存区的的内容不变,只将head指向指定的commit版本

git revert和 git reset_第5张图片
soft使用

这里的 git reflog查看命令历史 git log是查看提交历史的.

git revert

撤销一个提交的同时会创建一个新的提交。这是一个安全的方法,因为它不会重写提交历史。比如,下面的命令会找出倒数第二个提交,然后创建一个新的提交来撤销这些更改,然后把这个提交加入项目中。
$ git revert [commit]


git revert和 git reset_第6张图片
test_8.PNG

从这里看出revert并不覆盖提交历史,但是reset会覆盖提交历史.

你可能感兴趣的:(git revert和 git reset)