我的一张拼贴画重新组织了我们在Git中的一个项目,这导致以前在那里删除了几个目录。今天早晨,当我使用“源树”从开发中撤出时,已删除目录中的文件已消失,但这些目录仍保留在本地副本上。有没有办法在发生这种情况时可以在拉出时删除目录?
这可能是一个重复的问题,但是我能找到的一切都在解决恢复已删除的文件。
答案 0 :(得分:1)
Git跟踪文件,而不是目录。因此对于git来说,不存在一个空目录。
但是,您可以使用git clean -df
命令删除所有未跟踪的文件和目录。不过请小心,因为这也会删除所有未跟踪的文件。
从手册页:
Cleans the working tree by recursively removing files that are not under version control, starting from the current directory.
Normally, only files unknown to Git are removed, but if the -x option is specified, ignored files are also removed. This can, for example, be useful to remove all build products.
If any optional <path>... arguments are given, only those paths are affected.
-d
Remove untracked directories in addition to untracked files. If an untracked directory is managed by a different Git repository, it is not removed by default. Use -f option twice if you really want to remove such a directory.
-f, --force
If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to delete files or directories unless given -f, -n or -i. Git will refuse to delete directories with .git sub directory or file unless a second -f is given.
-i, --interactive
Show what would be done and clean files interactively. See "Interactive mode" for details.
-n, --dry-run
Don't actually remove anything, just show what would be done.