我希望确保在使用git存储库时不会意外删除一些未跟踪的文件。
我知道可以删除未跟踪文件的命令有:
git clean
,显然,它的目的是删除未跟踪的文件。git stash -u
,文件将从工作目录中删除,但保留在stash中。
是否存在其他情况下git
会删除未跟踪的文件?
我希望确保在使用git存储库时不会意外删除一些未跟踪的文件。
我知道可以删除未跟踪文件的命令有:
git clean
,显然,它的目的是删除未跟踪的文件。git stash -u
,文件将从工作目录中删除,但保留在stash中。是否存在其他情况下git
会删除未跟踪的文件?
Torek的例子就是我要给出的例子。当你执行像git checkout <filename>
这样的危险命令时,Git会毫不犹豫地让你覆盖掉你的版本。基本上,每当你指定一个具体的文件名时,Git都会允许你这样做。
当然,git reset --hard
也可能会造成各种混乱。
.gitignore
,并且您检出了包含该名称文件的提交,Git 有时会自由地用跟踪的文件覆盖该文件。具体示例请参见 Stop git from silently clobbering ignorefiles (bug in git?)?。git checkout
或git switch
操作才能到达这里。
git worktree remove
存有疑问,但是我刚刚查了一下,它没有删除未跟踪文件的选项。供参考。 - Romain Valeri