美文网首页
git .gitignore filter dir or fil

git .gitignore filter dir or fil

作者: 并肩走天涯 | 来源:发表于2014-12-15 18:24 被阅读900次

    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 fil

          本文链接:https://www.haomeiwen.com/subject/rnkotttx.html