没时间看的,直接CV大法
还原当前分支代码 两个命令都可以
git checkout -f && git clean -df
git reset --hard && git clean -df
git checkout 代码还原方法
git文件三种状态,not add、add、update
update状态的文件删除修改内容 (已经 git add . 添加缓存的文件,只会回到缓存状态)
git checkout .
git checkout -- .
单个文件 目录结构 (dist/config/index.js)
git checkout -- config/index.js (config 和git文件目录同级)
add状态的文件删除,update状态的文件删除修改的内容
git checkout -f (不支持单个文件)
以上命令都对 not add状态文件无效
git rm 代码还原方法
git rm --cached <FILE>:已 add(tracked)
未 commit 的文件,使其回到未 add 状态(untracked)
git rm -f <FILE>: 从本地删除已 add 的文件
git reset 代码还原方法
git reset HEAD:撤销 commit,回到 modified 状态。
git reset --soft:撤销 commit,回到 tracked 状态。
git reset --hard:效果同 git checkout -f 一样,原理不同
git clean 代码还原方法
git clean 用作删除所有 untracked 文件。
git clean -n:查看所有将要删除的文件
git clean -f:删除当前目录下 untracked 文件,除过 .gitignore 里的文件或文件夹
git clean -f <path>:指定路径下
git clean -df:删除当前目录下 untracked 文件和文件夹
git clean -xf:删除当前目录下所有 untracked 文件,不管 .gitignore
注意 -xf 、-xdf 尽量少用