是否有可能(不再使用git clone)将repo带到" clean"状态,还会删除手动创建的文件吗?
我有一个gitignored的目录:
# .gitignore
mydir/
目录mydir已手动创建并包含文件。当我做的时候
git clean -X -f .
在我的仓库的基本目录中,mydir未被删除。这似乎与文档一致,我们可以看到here。
我现在的问题是:清洁我的回购的最佳方法是什么?我可以rm -rf
我的回购然后运行git clone
,但也许有更好的"这样做的方法?
答案 0 :(得分:5)
您正在寻找-d
旗帜
-d
除了未跟踪的文件外,还删除未跟踪的目录。如果未跟踪的目录由不同的Git存储库管理,则它是 默认情况下不会删除。如果你真的想,请使用-f选项两次 删除这样的目录。
和-x
标志
-x
不要使用从.gitignore(每个目录)和$ GIT_DIR / info / exclude读取的标准忽略规则,但仍然使用忽略 使用-e选项给出的规则。这允许删除所有未跟踪的文件, 包括构建产品。这可以使用(可能结合使用) 用git reset)创建一个pristine工作目录来测试一个干净的 建立。
当您使用$ git clean -xdf
和-x
同时执行-d
时,它还会删除未跟踪/忽略的 d irectories