我刚刚将.gitignore文件更新为不包含节点和bower模块文件。
node_modules/
.tmp
.sass-cache
sample/bower_components/
sample/node_modules/
sample/images/
但是当我运行git clean -f
时,我的终端回复了
Removing sample/scripts
当然,sample/scripts
是我想要保留在项目中的文件夹,我还没有在.gitignore中指定它,为什么要删除它?
答案 0 :(得分:4)
git clean
将删除Git不知道的文件。如果您未传递-x
标记,则会删除未跟踪且未明确忽略的文件。
因此,如果删除了sample/scripts
,那么Git显然没有跟踪它。如果您想保留它,则必须通过添加和提交来跟踪它,或者将其添加到.gitignore
。
顺便说一下。最好先运行git clean -n
以查看Git在实际执行此操作之前会删除的内容。
答案 1 :(得分:0)
我假设您没有将sample/scripts
目录中的任何文件添加到Git存储库。这意味着它们不会被跟踪,并且会从git-clean
手册中删除它们:Cleans the working tree by recursively removing files that are not under version control, starting from the current directory.
您可以使用以下命令检查本地存储库正在跟踪哪些文件:
git ls-tree --full-tree -r HEAD
如果缺少文件,只需添加它们:
git add sample/scripts/.
git commit -m "Add missing sample scripts"
git clean -f
Git只跟踪文件,因此空白目录不计算在内。您可以添加基本.gitignore来解决此问题:
touch sample/scripts/.gitignore
git add sample/scripts/.gitignore
git commit -m "Add sample scripts gitignore"
git clean -f