如何删除工做目录中的全部更改,包括新的未跟踪文件。 我知道git checkout -f
,但它不会删除自上次提交以来建立的新的未跟踪文件。 html
有人知道怎么作吗? git
我常常使用的最安全的方法: 安全
git clean -fd
根据/docs/git-clean
页面的语法解释: 测试
-f
(别名: --force
)。 若是Git配置变量clean.requireForce未设置为false,则git clean将拒绝删除文件或目录,除非给定-f,-n或-i。 除非给出第二个-f,不然Git将拒绝使用.git子目录或文件删除目录。 -d
。 除了未跟踪的文件以外,删除未跟踪的目录。 若是未跟踪的目录由不一样的Git存储库管理,则默认状况下不会删除它。 若是您确实要删除此类目录,请使用-f选项两次。 正如评论中所提到的,最好作一个git clean -nd
,它会执行干运行并告诉你在实际删除它以前会删除什么。 ui
连接到git clean
doc页面: https : //git-scm.com/docs/git-clean spa
git reset --hard # removes staged and working directory changes ## !! be very careful with these !! ## you may end up deleting what you don't want to ## read comments and manual. git clean -f -d # remove untracked git clean -f -x -d # CAUTION: as above but removes ignored files like config. git clean -fxd :/ # CAUTION: as above, but cleans untracked and ignored files through the entire repo (without :/, the operation affects only the current directory)
要查看以前将删除的内容,而不实际删除它,请使用-n
标志(这基本上是一个测试运行)。 当您准备好实际删除时,请删除-n
标志: 版本控制
git clean -nfd
code
看看git clean
命令。 htm
git-clean - 从工做树中删除未跟踪的文件 递归
经过从当前目录开始递归删除不受版本控制的文件来清除工做树。
一般,只删除git未知的文件,但若是指定了-x选项,则也会删除忽略的文件。 例如,这能够用于删除全部构建产品。
对于全部未暂存的文件,请使用:
git checkout -- .
的.
最后很重要。
你能够替换.
使用子目录名称仅清除项目的特定子目录。 这里特别提到了这个问题。
如下做品:
git add -A . git stash git stash drop stash@{0}
请注意,这将丢弃您的未分阶段和分阶段的本地更改。 所以,在运行这些命令以前,您应该提交任何想要保留的内容。
一个典型的用例:您移动了不少文件或目录,而后想要恢复到原始状态。