git reset三种模式(–hard/–mixed/–soft)
Git会有三个区域:
1.Working Tree 当前的工作区域(本地代码存放位置)
2.Index/Stage 暂存区域,和git stash命令暂存的地方不一样。使用git add xx,就可以将xx添加进Stage里面(暂存区域)
Repository 提交的历史,即使用git commit提交后的结果(类似本地仓库)

git reflog 查看提交记录,q退出
1 2 3 4 5 6 7 8 9
| git reset --hard 目标节点 重置Index/Stage区域和Working Tree中的内容到指针指定的节点时候的代码内容,若你修改代码后,没有commit,则修改会被擦除。 git reset --hard HEAD^ 切到上一条commit 的同时,你工作目录(Working Tree)新的改动和已经add到暂存区域(Index/Stage )的新改动也一起全都消失了。若执行两次,则代码回到上上次commit的状态。 git reset --soft HEAD^ 由于工作目录(Working Tree)的内容,会对比重置前的状态,将差异文件放进暂存区域(Index/Stage ) git reset HEAD^与git reset --mixed HEAD^ reset 如果不加参数,那么默认使用 --mixed 参数 工作目录(Working Tree)的内容和 --soft 一样会被保留,但暂存区域(Index/Stage )会被清空,即对比重置前的状态,将所有差异文件放进工作目录(Working Tree)
|
Git 的历史只能往回看 ,不能向未来看
git reset HEAD–filename与git checkout filename对比
1 2 3 4 5
| git reset HEAD 111.php 清空暂存区,但修改不撤销。与git reset 111.php效果一致 git checkout 111.php add 111.PHP文件后,对111.PHP进行修改,使用git checkout 111.php命令撤销修改 若add 并提交111.PHP文件后,对111.PHP进行修改,使用git checkout 111.php命令撤销修改
|
参考:
https://www.jianshu.com/p/c2ec5f06cf1a
https://www.runoob.com/linux/linux-comm-sed.html