git如何清除工作区所有还没有add的文件的修改?

如题 工作区有十多个文件被修改了 但是还没有add 如何一次清除所有的修改

使用git checkout -- file 一次只能还原一个文件,求一次还原所有文件的方法

阅读 54.3k
8 个回答
git checkout head .
git checkout .

清除当前目录下所有没add的修改。

git checkout . # 丢弃所有修改或删除,不影响新增或未跟踪的文件。会递归下级目录
git clean -nxdf # dry-run,先看下即将删除那些文件,再执行下面的危险命令
git clean -df # 删除所有未跟踪的文件和目录(不包含.gitignore的文件),危险命令
git clean -xdf # 删除所有未跟踪的文件和目录(同时包含.gitignore的文件),危险命令

新手上路,请多包涵

git clean -fd

git checkout -f

恢复暂存区的指定文件到工作区
$ git checkout [file]

恢复某个commit的指定文件到暂存区和工作区
$ git checkout [commit] [file]
恢复暂存区的所有文件到工作区
$ git checkout .
重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
$ git reset [file]
重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard
重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
$ git reset [commit]
重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
$ git reset --hard [commit]
重置当前HEAD为指定commit,但保持暂存区和工作区不变
$ git reset --keep [commit]
新建一个commit,用来撤销指定commit
后者的所有变化都将被前者抵消,并且应用到当前分支
$ git revert [commit]
暂时将未提交的变化移除,稍后再移入
$ git stash
$ git stash pop

新手上路,请多包涵

git checkout --目录名 ,删除某个目录下的修改

新手上路,请多包涵

git reset --hard HEAD : 将stage area中未提交的file回滚到之前的commit状态(这个指令可以解决你的问题)
git clean -d -f 删除未跟踪的目录和文件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题