zoukankan      html  css  js  c++  java
  • git设置忽略文件.gitignore

    在仓库目录下新建一个名为.gitignore的文件(因为是点开头,没有文件名,没办法直接在windows目录下直接创建,必须通过右键Git Bash,按照linux的方式来新建.gitignore文件)。如下图所示。

    .gitignore文件对其所在的目录及所在目录的全部子目录均有效。通过将.gitignore文件添加到仓库,其他开发者更新该文件到本地仓库,以共享同一套忽略规则。

    以下涉及的ignore文件均为如下格式:

    # 以'#'开始的行,被视为注释.                                                                                                                          
    
    # 忽略掉所有文件名是 foo.txt的文件.
    
    foo.txt
    
    # 忽略所有生成的 html文件,
    
    *.html
    
    # foo.html是手工维护的,所以例外.
    
    !foo.html
    
    # 忽略所有.o和 .a文件.
    
    *.[oa]
    配置语法:
    以斜杠“/”开头表示目录;
    以星号“*”通配多个字符;
    以问号“?”通配单个字符
    以方括号“[]”包含单个字符的匹配列表;
    以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

    常用的规则:
    1)/mtk/               过滤整个文件夹
    2)*.zip                过滤所有.zip文件
    3)/mtk/do.c         过滤某个具体文件

    被过滤掉的文件就不会出现在git仓库中(gitlab或github)了,当然本地库中还有,只是push的时候不会上传。
    需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中:
    1)!*.zip
    2)!/mtk/one.txt

    唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。
    为什么要有两种规则呢?想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么我们就需要使用:
    1)/mtk/
    2)!/mtk/one.txt
    假设我们只有过滤规则,而没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!

    最后需要强调的一点是,如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。
    简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。因此一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。

  • 相关阅读:
    第三第四周的笔记
    第一二周的笔记
    jQuery的一些笔记
    函数的执行环境与调用对象
    从click事件理解DOM事件流
    慕课编程题JS选项卡切换
    adb(11)-重新挂载 system 分区为可写
    adb(10)-屏幕截图/录制
    adb(9)-查看设备信息
    adb(8)-查看日志
  • 原文地址:https://www.cnblogs.com/linsx/p/9335757.html
Copyright © 2011-2022 走看看