如何从工作目录删除所有更改,包括新的未跟踪文件。我知道git checkout -f这样做,但它不会删除自上次提交以来创建的新的未跟踪文件。
有人知道怎么做吗?
如何从工作目录删除所有更改,包括新的未跟踪文件。我知道git checkout -f这样做,但它不会删除自上次提交以来创建的新的未跟踪文件。
有人知道怎么做吗?
当前回答
对于所有被跟踪的非暂存文件使用:
git checkout -- .
的。结尾很重要。
你可以替换。子目录名,可仅清除项目的特定子目录。这里专门讨论了这个问题。
其他回答
对于所有被跟踪的非暂存文件使用:
git checkout -- .
的。结尾很重要。
你可以替换。子目录名,可仅清除项目的特定子目录。这里专门讨论了这个问题。
git reset --hard origin/{branchName}
它将删除所有未跟踪的文件。
最安全的方法,我经常使用:
git clean -fd
根据/docs/git-clean页面的语法解释:
-f(别名:——force)。如果Git配置变量clean。requireForce没有设置为false, git clean将拒绝删除文件或目录,除非给定-f, -n或-i。Git将拒绝删除带有. Git子目录或文件的目录,除非给出第二个-f。 - d。除删除未跟踪的文件外,还删除未跟踪的目录。如果一个未跟踪的目录由不同的Git存储库管理,默认情况下它不会被删除。如果真的想删除这样的目录,请使用-f选项两次。
正如在评论中提到的,最好是执行一个git clean -nd,它会做一个演练,并在实际删除它之前告诉你将删除什么。
链接到git清洁文档页面: https://git-scm.com/docs/git-clean
对于我使用的特定文件夹:
git checkout -- FolderToClean/*
Git clean -i将首先向您显示要删除的项目,并在确认后继续执行。我发现这在处理不应该被意外删除的重要文件时很有用。
有关更多信息,请参阅git help clean,包括一些其他有用的选项。