如何删除工作目录中的所有更改,包括新的未跟踪文件.我知道这样git checkout -f做,但它不会删除自上次提交后创建的新的未跟踪文件.
有人知道怎么做吗?
小智 1639
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)
Run Code Online (Sandbox Code Playgroud)
要查看之前将删除的内容,而不实际删除它,请使用该-n标志(这基本上是一个测试运行).当您准备好实际删除时,请删除该-n标志:
git clean -nfd
小智 286
我经常使用的最安全的方法:
git clean -fd
Run Code Online (Sandbox Code Playgroud)
/docs/git-clean每页语法说明:
-f(别名:) --force.如果Git配置变量clean.requireForce未设置为false,则git clean将拒绝删除文件或目录,除非给定-f,-n或-i.除非给出第二个-f,否则Git将拒绝使用.git子目录或文件删除目录.-d.除了未跟踪的文件之外,删除未跟踪的目录.如果未跟踪的目录由不同的Git存储库管理,则默认情况下不会删除它.如果您确实要删除此类目录,请使用-f选项两次.正如评论中所提到的,最好做git clean -nd一个干运行并告诉你在实际删除它之前会删除什么.
链接到git cleandoc页面:https:
//git-scm.com/docs/git-clean
jfo*_*ain 197
对于所有未暂存的文件,请使用:
git checkout -- .
Run Code Online (Sandbox Code Playgroud)
将.在年底非常重要.
您可以.使用子目录名替换以仅清除项目的特定子目录.这里特别提到了这个问题.
don*_*ote 41
以下作品:
git add -A .
git stash
git stash drop stash@{0}
Run Code Online (Sandbox Code Playgroud)
请注意,这将丢弃您的未分阶段和分阶段的本地更改.因此,在运行这些命令之前,您应该提交任何想要保留的内容.
一个典型的用例:您移动了很多文件或目录,然后想要恢复到原始状态.
致谢:https://stackoverflow.com/a/52719/246724
Ger*_*ser 39
您可以分两步完成此操作:
git checkout -fgit clean -fdsku*_*ube 26
我以为是(警告:以下会消灭一切)
$ git reset --hard HEAD
$ git clean -fd
Run Code Online (Sandbox Code Playgroud)
该reset撤消更改.的clean以除去任何未跟踪˚F尔斯和d irectories.
git clean -i将首先向您显示要删除的项目,并在您确认后继续。我发现这在处理不应被意外删除的重要文件时很有用。
有关git help clean更多信息,包括一些其他有用的选项,请参阅。
| 归档时间: |
|
| 查看次数: |
598890 次 |
| 最近记录: |