git log
查看过往修改的版本

commit是每次执行git commit -am "标识"的标识
版本号。图中的fourth commit下的黄色commit后即时版本号,一般取前七位。
git reset --hard xxx
xxx为版本号,回到指定的版本。
彻底回溯,commit后的版本成为新版本。

git reset --soft xxx
回到指定版本 的commit,并不改变index和workplace的内容,作用有点类似于:
内容的commit可以重新设定
且不占用之前的版本号.


其实重点在于理解git的三种树:缓冲区和工作目录和提交区
一般说来,reset的用处有三种:
- --soft – 缓存区和工作目录都不会被改变
- --mixed – 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
- --hard – 缓存区和工作目录都同步到你指定的提交
git revert xxx
Revert 撤销一个提交的同时会创建一个新的提交。
这是一个安全的方法,因为它不会重写提交历史。
比如,下面的命令会找出倒数第二个提交,然后创建一个新的提交来撤销这些更改,然后把这个提交加入项目中。
git checkout hotfix
git revert HEAD~2
可以用于master,也可以是私用分支

不会覆盖现有的commit
网友评论