zoukankan      html  css  js  c++  java
  • 如何编写gitignore文件

    原文链接:https://www.cnblogs.com/jingtyu/p/6831772.html

    为什么要有.gitignore文件

    项目中经常会生成一些Git系统不需要追踪(track)的文件。典型的是在编译生成过程中 产生的文件或是编程器生成的临时备份文件。当然,你不追踪(track)这些文件,可以 平时不用"git add"去把它们加到索引中。 但是这样会很快变成一件烦人的事,你发现项目中到处有未追踪(untracked)的文件; 这样也使"git add ." 和"git commit -a" 变得实际上没有用处,同时"git status"命令的输出也会有它们。你可以在你的顶层工作目录中添加一个叫".gitignore"的文件,来告诉Git系统要忽略 掉哪些文件。

    忽略文件原则

    1. 忽略操作系统自动生成的文件,比如缩略图等;
    2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
    3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

    语法规范(熟悉正则很容易理解)

    • 空行或是以#开头的行即注释行将被忽略;
    • 以斜杠 “/” 结尾表示目录;
    • 以星号 “*” 通配多个字符;
    • 以问号 “?” 通配单个字符
    • 以方括号 “[]” 包含单个字符的匹配列表;
    • 以叹号 “!” 表示不忽略(跟踪)匹配到的文件或目录;
    • 可以在前面添加斜杠 “/” 来避免递归,下面的例子中可以很明白的看出来与下一条的区别。

    配置文件示例

    # 忽略 .a 文件
    *.a
    
    # 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
    !lib.a
    
    # 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO
    /TODO
    
    # 忽略 build/ 文件夹下的所有文件
    build/
    
    # 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
    doc/*.txt
    
    # 忽略所有的 .pdf 文件 在 doc/ directory 下的
    doc/**/*.pdf
    

    配置文件模板

    Github 上为开发者提供了各种环境以及各种编程语言的 gitignore 文件配置模板:https://github.com/github/gitignore

    本人使用的是python项目的gitgnore文件 url:https://github.com/github/gitignore/blob/master/Python.gitignore

    .gitignore分为全局配置和局部配置,这个很容易理解全局配置是指修改当前.gitignore文件本机的git中的全部项目都起作用,局部的配置是指每个项目下的.gitignore文件只对向前所在的项目起作用。

    局部的配置只需要在项目目录中创建 .gitignore 文件即可。

    全局的配置设置方法为:

    $git config –global core.excludesfile ~/.gitignore

    这样,修改 ~/.gitignore 这个文件将作用于所有 git 项目,并且作用于项目实例中的所有被跟踪的目录。
    # Windows: (使用windows用户,过滤存放图片文件夹下生成的缩略图) Thumbs.db ehthumbs.db Desktop.ini # Python: *.py[cod] *.so *.egg *.egg-info dist build target .idea .classpath .project .settings *.iml .gitignore

    总结

    1. 忽略某些文件时,需要编写.gitignore
    2. .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
    3. 从版本库中删除
      $ git rm test.txt
      rm 'test.txt'
      $ git commit -m "remove test.txt"
     

    参考链接:http://www.chengxusheji.com/archives/121.html

                  http://kuanghy.github.io/2016/05/17/gitignore

                  http://outofmemory.cn/code-snippet/37452/git-ignorefiles-example

  • 相关阅读:
    抽象类存在的意义
    抽象类的特征
    抽象类的使用
    抽象类的概述
    引用类型作为方法参数和返回值
    继承的特点
    目前Java水平以及理解自我反思---01
    继承后- 构造器的特点
    指针函数
    C数组灵活多变的访问形式
  • 原文地址:https://www.cnblogs.com/xuanbiyijue/p/7894599.html
Copyright © 2011-2022 走看看