代码之家  ›  专栏  ›  技术社区  ›  turbulencetoo

运行git clean-X时保留一些gitignored文件

  •  2
  • turbulencetoo  · 技术社区  · 6 年前

    我使用的是一个存储库,您通常希望在其中进行干净的构建。这将导致生成脚本发出 git clean -Xdff 它将删除与中的模式匹配的所有文件 .gitignore . 我想要一些被Git忽略的文件(例如。 .project 从日食)坚持在清洁后。

    我试着加上 -e 标记为“exclude”,但这似乎没有帮助,因为我们是故意清除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 在本地生成脚本中调用(或周围的代码)以保留 .项目 在一个干净的版本中归档?

    2 回复  |  直到 6 年前
        1
  •  3
  •   scharette    6 年前

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

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


    我想你的问题是 X 而不是 x flag,你应该用这个来代替,

    git clean -xn -e .project
    
        2
  •  2
  •   VonC    6 年前

    git clean ,仅 -x 允许 -e 待归档文件 考虑过的 .
    意义 .project 会被删除( -X 使用忽略规则或 -x -e )

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

    如前所述,文档对于 -e类 .