git .gitignore filter dir or file settings

Git

在提交到版本控制库的时候,应该对这些项目文件,进行过滤(使用 GIT 做 SCM 时,过滤文件位于项目根目录,名称为 .gitignore)。

    .gitignore
    
    # filter eclipse file
    *.classpath
    *.project
    
    # filter eclipse dir
    /.settings/
    
    # filter idea file
    *.iml
    
    #filter idea dir
    /.idea/

IDE 方言的项目文件

    Eclipse : dir - .settings, files - .classpath .project
    IntelliJ : dir - .idea, file 项目同名的 .iml
  • git 创建 .gitignore 文件 建立项目过滤规则

    创建 .gitignore 设置跟踪和不跟踪那些文件

    1. 在项目根目录下建立 .gitignore 文件
    2. .gitignore文件过滤有两种模式,开放模式保守模式
      • 格式规范

          所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
          可以使用标准的 glob 模式匹配。
          匹配模式最后跟反斜杠(/)说明要忽略的是目录。
          要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
          先编写开放模式,在编写保守模式,要不然,开放模式的规则会把保守模式的规则给覆盖了。
          
          # 配置语法
          以斜杠“/”开头表示目录;
          以星号“*”通配多个字符;
          以问号“?”通配单个字符
          以方括号“[]”包含单个字符的匹配列表;
          以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
        
      • 开发模式负责设置过滤那些文件和文件夹

          eg:
          # filter dir setting, 表示过滤这个文件夹
          /mtk/
          /target/
          
          # filter file setting, 指定过滤某种类型的文件
          *.zip
          *.rar
          *.via
          *.tmp
          *.err
          
          # 指定过滤某个文件
          /mtk/do.c
          /mtk/if.h
        
      • 保守模式负责设置那些文件[要被跟踪]不被过滤

          eg:
          # not filter dir setting, 跟踪某个文件夹
          !/pluto/mmi
          
          # not filter file setting, 跟踪某类文件
          !*.c
          !*.h
          
          # 跟踪某个指定文件
          !/pluto/mmi/features.h
        
      • config .gitignore simple rule

          [开放模式与保守模式结合配置]
          eg:
          # 一个文件夹下有很多文件夹和文件,而只想跟踪其中的一个文件
          /pluto/mmi/
          !/pluto/mmi/features.h
        
    • 强调

      最后需要强调的一点是,如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。

      简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。

      所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。

你可能感兴趣的:(git .gitignore filter dir or file settings)