我正在使用一个存储库,您经常想在其中进行干净的构建。这将导致构建脚本发出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
文件?
答案 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
令人困惑。