Git Reset三种模式
前言
在最近的工作中使用到git遇到的一些问题,对git的了解加深了一点。
有时候,当我们commit代码后,发现这一次commit的内容是有错误的,这个时候有两种处理方法
1、修改错误内容,再一次commit
2、使用git reset命令撤销这一次错误的commit
这两种方法,第一种比较直接,但会多义词commit记录
解释
git-reset - Reset current HEAD to the specified state
意思就是可以让HEAD这个指针指向其他的地方。例如我们有一次commit不是不是很满意,需要回到上一次的Commit里面。那么这个时候就需要通过reset,把HEAD指针指向上一次的commit的点。
三种模式
soft、mixed、hard
这是他们的区别
reset --hard
reset --hard 会在重置 HEAD 和branch的同时,重置stage区和工作目录里的内容。当你在 reset 后面加了 --hard 参数时,你的stage区和工作目录里的内容会被完全重置为和HEAD的新位置相同的内容。换句话说,就是你的没有commit的修改会被全部擦掉。
例如你在上次 commit 之后又对文件做了一些改动:把修改后的ganmes.txt文件add到stage区,修改后的shopping list.txt保留在工作目录