在运行git clean -X

时间:2018-07-25 18:18:53

标签: git git-clean

我正在使用一个存储库,您经常想在其中进行干净的构建。这将导致构建脚本发出git clean -Xdff,该脚本将删除与.gitignore中的模式匹配的所有文件。我希望Git忽略的某些文件(例如Eclipse中的.project)在清理后仍然存在。

我已经尝试为“排除”添加-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文件?

2 个答案:

答案 0 :(得分:3)

按照@turbulencetoo

所述警告此解决方案

的副作用是删除您工作集中的其他未跟踪文件(例如newSourceFile.c)(如果尚未添加的话)。


我认为您的问题是您使用的是X而不是x标志,您应该使用它,

git clean -xn -e .project

答案 1 :(得分:2)

git clean中,只有-x允许-e文件被考虑
意味着.project可以通过两种方式删除(-X使用忽略规则或-x -e

  

如果指定了-x选项,还将删除忽略的文件。
  -e <pattern>:除了在.gitignore(每个目录)和$GIT_DIR/info/exclude中发现的那些模式之外,还应将这些模式视为有效的忽略规则集中。
  -X:仅删除Git忽略的文件

如前所述,文档-e令人困惑。