如果我的存储库中有一个目录应用程序,其中包含一个未跟踪的文件并且我执行git clean -f
,我会收到消息:未删除 app/ 并且未跟踪的文件仍然存在。
但是,如果我在同一个目录中有一个额外的跟踪文件,并且我执行了完全相同的命令,那么未跟踪的文件将被成功删除。
所以我的问题是:如果从未跟踪的文件中清除目录后它是空的,为什么 Git 会尝试删除该目录?
下面是重现该行为的脚本。提前致谢。
#!/bin/bash
# Create new empty repo
mkdir myrepo && cd myrepo
git init
# Create app directory with main.c
mkdir app
touch app/main.c
# Try to delete main.c with git clean -> Not working
git clean -f
# Add helper.c to app directory and add to index
touch app/helper.c
git add app/helper.c
# Try to delete main.c with git clean -> Now it's working
git clean -f