git rm 、git clean、git restore、git reset区别

267 阅读1分钟

git rm

物理删除文件

git rm a.js

定义指定的文件将不再被Git跟踪(但文件仍保留在本地文件系统中)

git rm --cached a.js

定义指定的文件夹将不再被Git跟踪(但文件仍保留在本地文件系统中)

# -r 允许递归删除
git rm --cached -r src

定义指定的文件夹将不再被Git跟踪(并在本地文件系统中删除)

# -r 允许递归删除
git rm -f -r src

git restore 丢弃暂存区/工作区修改

从暂存区恢复到工作区

git restore -S .

丢弃工作区已跟踪文件的修改(不包含工作区新增的文件)

git restore -W .

git reset 对提交记录进行回滚

git reset --soft HEAD^
git reset --mixed HEAD^
git reset --hard HEAD^

git clean 对新增文件物理删除

options:

  • -f 强制删除
  • -d 删除整个目录
  • -x 也删除忽略的文件
  • -X 只删除忽略的文件
git clean -df