Git 在远程删除的文件夹不会在拉取时删除本地

Git Folder deleted in remote doesn't delete local on pull

我的一个拼贴画重组了我们在 Git 中的一个项目,这导致之前存在的几个目录被删除。当我今天早上使用 Source Tree 退出开发时,删除的目录中的文件消失了,但目录保留在我的本地副本中。有没有一种方法可以在发生这种情况时删除目录?

这可能是一个重复的问题,但我能找到的所有内容都在解决恢复已删除文件的问题。

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.