2

我正在使用您经常想要进行干净构建的存储库。这会导致构建脚本发出 a git clean -Xdff,它将删除与.gitignore. 我希望一些被 Git 忽略的文件(例如.project来自 Eclipse)在清理后仍然存在。

我尝试-e为“排除”添加标志,但这似乎无济于事,因为我们有意清理 Git 忽略的内容。

亲眼看看:

~$ mkdir testrepo && cd testrepo
~/testrepo$ git init
Initialized empty Git repository in /home/turbulencetoo/testrepo/.git/
~/testrepo$ echo ".project" > .gitignore
~/testrepo$ touch .project
~/testrepo$ git clean -Xn
Would remove .project
~/testrepo$ git clean -Xn -e .project
Would remove .project

您会建议对本地构建脚本中的调用(或周围代码)进行哪些更改,以便在干净构建期间git clean保留我的文件?.project

4

2 回答 2

3

如@turbulencetoo 所述,警告此解决方案

如果您还没有添加它们,则会产生删除工作集中其他未跟踪文件(例如 newSourceFile.c)的副作用。


我认为你的问题是你使用X而不是x标志,你应该使用这个,

git clean -xn -e .project
于 2018-07-25T18:24:00.010 回答
2

From git clean, 只-x允许考虑-e文件。 含义将被删除(使用忽略规则或)
.project-X-x -e

如果-x指定了该选项,则忽略的文件也会被删除。
-e <pattern>: 除了在.gitignore(per directory) 和中找到的那些$GIT_DIR/info/exclude,还认为这些模式在有效的忽略规则集中。
-X: 只删除 Git 忽略的文件

正如所评论的那样,文档对于-e.

于 2018-07-25T18:27:56.197 回答