如何清理.gitignore文件?

时间:2016-11-19 11:57:34

标签: git gitignore

是否有git命令可用于删除.gitignore中未使用的行?

换句话说,我想删除对项目没有影响的模式。

3 个答案:

答案 0 :(得分:3)

Git没有内置任何内容,所以你必须编写自己的代码,可能使用git check-ignore。这样的程序会非常复杂,因为由于其他现有的忽略条目,一些忽略条目可能未使用。作为一个有点愚蠢的例子,如果一个条目说*.a,一个说*.b,三个说*.[ab],删除前两个中的任何一个或两个都是“安全”(不做任何更改)在被忽略的东西中)只要第三个仍然存在,但删除第三个则需要保留前两个两个。这意味着找到一组真正最小的忽略条目需要尝试所有组合。

无论如何,一般来说这不是一个好主意。例如,假设项目.gitignore包含这两行(等等):

*.dylib
*.dll

并且您正在使用Linux - 但是构建共享的动态加载库的项目不仅限于Linux。

这些行在Mac(第一行)和Windows(第二行)上工作并由其使用。你永远不会自己使用它们。您的系统既不构建DLL也不构建Dylib文件;它改为构建共享库(*.so)文件;以及你构建的任何自动代码测试是否使用它们会说:不,这些都没有使用。所以你可能会删除它们......并为其他开发人员带来麻烦。如果他们运行您的程序,它将删除正在使用的*.so行。

(这也发生在IDE中,这可能会创建具有Git可以看到的“隐藏”名称的文件或目录。如果您使用与Bob不同的IDE,而Carol使用第三个,则可能三个都需要不同的条目。使用你自己的全局“排除”文件可以解决这个问题,如果你的编辑器制作备份文件,这通常是正确的答案:如果Bob的编辑器在Carol制作*~时制作#*,Bob可以放{ {1}}在他的个人全局排除中,Carol可以将*~放在她的身上。同时如果你使用#*,你可以将vim.swp放在你的身上。但是这有时也会依赖于项目。)

答案 1 :(得分:1)

如果您愿意使用IDE,可以尝试使用.ignore plugin进行IntelliJ IDEA。根据我的经验,它应该做你想要的。

从其功能列表中:

  
      
  • 带有修复操作的条目检查(重复,覆盖,未使用,相对,不正确的语法,相关条目)
  •   

答案 2 :(得分:0)

您只需打开文件并删除未使用的行并保存即可。