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.
我的一个拼贴画重组了我们在 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.