Git进阶之旅:.gitignore 文件

  1. 介绍:
    1. 在项目中,我们可能一起提交多个文件
      1. git  add  -A:提交所有变化
      2. git  add  -u:提交被修改(modified) 和被删除文件(deleted) 文件,不包括新文件(new) 
      3. git  add  .:提交新文件(new) 和被修改文件(modified) ,不包括被删除文件(deleted)
    2. 使用 Git 的过程中,有些文件无需纳入 Git 管理,也不希望它们出现在未跟踪列表,这些文件通常是日志文件、临时文件、编译产生的中间文件、工具自动生成的文件等。
    3. 此时,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式,Git 会根据这些模式规则来判断是否将文件添加到版本控制中
    4. 注意:在 windows 下可以创建文件名为 .gitignore,保存之后系统会自动重命名为 .gitignore
  2. 格式规范:
    1. 所有空行或者以注释 # 开头的都会被 Git 忽略
    2. 可以使用标准的 glob 模式匹配
    3. 匹配模式最后跟 / 说明要忽略的文件是 目录
    4. 要忽略指定模式外的文件或目录,可以在模式前加上 !进行取反
  3. glob 模式:
    1. *:匹配零个或多个任意字符
    2. [ ]:匹配任意一个在方括号中的字符,如 [ab]:匹配 a 或者匹配 b
    3. ?:匹配一个任意字符
    4. [ n - m]:匹配所有在这两个字范围内的字符,如 [ 0 - 9 ]:表示匹配所有 0 到 9 的数字
    5. 匹配实例:
      1. logs/:忽略当前路径下的 logs 目录,包含 logs 下的子目录和文件
      2. /logs.txt:忽略根目录下的 logs.txt 文件
      3. *.class:忽略所有后缀为 .class 的文件
      4. ·······
  4. 案例:
    1. 在需要创建 .gitignore 文件的文件夹,右键选择 Git Bash 进入命令行,进入项目所在目录
    2. 输入 touch  .gitignore ,文件夹就会生成一个 ".gitignore " 文件
    3. 然后用编辑器打开这个文件进行编辑即可
    4. 编写要忽略的文件:
      1. .gitignore 内容:
    5. 创建两个文件:
    6. 查看状态发现 testclass.class 文件不在工作区
    7. 提交也不会进入暂存区:
    8. 定义全局的 .gitignore:
      1. 除了可以在项目中定义  .gitignore 文件外,还可以设置全局的 .gitignore  文件来管理所有 Git 项目的行为
      2. 这种方式在不同的项目开发者之间是不共享的,是属于项目之上 Git 应用级别的行为
      3. 可以在任意路径下创建对应的 .gitignore 文件,然后使用以下命令配置:
        1. git  config  --global  core.excludesfile  ~/.gitignore
    9. .gitignore 规则不生效:
      1. .gitignore 只能忽略那些原来没有被 track 的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore 是无效的
      2. 一定要养成在项目开始就创建 .gitignore 文件的习惯
    10. Java 开发通用模板:
      ######################
      # 解决java产生文件
      ######################
      *.class# Mobile Tools for Java (J2ME)
      .mtj.tmp/# Package Files #
      *.jar
      *.war
      *.ear# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
      hs_err_pid*######################
      # 解决maven产生的文件
      ######################target/
      **/target/
      pom.xml.tag
      pom.xml.releaseBackup
      pom.xml.versionsBackup
      pom.xml.next
      release.properties
      dependency-reduced-pom.xml
      buildNumber.properties
      .mvn/timing.properties######################
      # 解决各类编辑器自动产生的文件
      ######################*.iml## Directory-based project format:
      .idea/
      # if you remove the above rule, at least ignore the following:# User-specific stuff:
      # .idea/workspace.xml
      # .idea/tasks.xml
      # .idea/dictionaries# Sensitive or high-churn files:
      # .idea/dataSources.ids
      # .idea/dataSources.xml
      # .idea/sqlDataSources.xml
      # .idea/dynamic.xml
      # .idea/uiDesigner.xml# Gradle:
      # .idea/gradle.xml
      # .idea/libraries# Mongo Explorer plugin:
      # .idea/mongoSettings.xml## File-based project format:
      *.ipr
      *.iws## Plugin-specific files:# IntelliJ
      /out/
      /target/# mpeltonen/sbt-idea plugin
      .idea_modules/# JIRA plugin
      atlassian-ide-plugin.xml# Crashlytics plugin (for Android Studio and IntelliJ)
      com_crashlytics_export_strings.xml
      crashlytics.properties
      crashlytics-build.properties
    11. diff 命令:
      1. git  diff  文件名:
        1. a 表示:前面的变量
        2. b 表示:后面的变量
        3. HEAD:commit  版本
        4. Index:staged 版本
      2. 工作区 vs 缓存区:
        1. git  diff  文件名:
        2. 意义:查看文件在工作目录与暂存区的差别。如果还没进暂存区,则查看文件自身修改后的差别。
        3. 也可查看和另一分支的区别:git  diff  <branch> <filename>
      3. 暂存区 vs Git 仓库:
        1. git  diff  --cached  文件名:
        2. 意义:表示查看已经 add 到暂存区但是尚未 commit 的内容同最新一次 commit 的内容的差异
        3. 也可以指定版本库:git  diff  --cached  版本  文件名:
      4. 工作目录 vs  Git仓库:
        1. git  diff  版本  文件名:
        2. 意义:查看工作目录同 Git 仓库指定 commit 的内容差异
        3. 版本 == HEAD 时:查看工作目录同最近一次 commit 的内容差异
      5. Git  仓库 vs Git 仓库:
        1. 查看 Git 仓库任意两次 commit 之间的差别:git  diff  版本  版本
      6. 注意:
        1. 以上命令不指定文件名,则对全部文件操作
        2. 以上命令和 Git 仓库对比的,均可指定 commit 的版本
          1. HEAD:最近一次 commit
          2. HEAD^:上一次提交
          3. HEAD~100:上100次提交

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10229.html

    如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    指针(C语言)从0到1掌握指针,为后续学习c++打下基础

    目录 一&#xff0c;指针 二&#xff0c;内存地址和指针 1&#xff0c;什么是内存地址 2&#xff0c;指针在不同系统下所占内存 三&#xff0c;指针的声明和初始化以及类型 1,指针的声明 2,指针 的初始化 1&#xff0c; 初始化方式优点及适用场景 4,指针的声明初始化类型…

    Leetcode 45. 跳跃游戏 II

    这题是一个动态规划问题&#xff0c;首先我先说一下自己的动态规划解题步骤&#xff1a; 1&#xff0c;首先需要明确动态规划数组的含义&#xff1a;这个是根据题目来定的&#xff0c;这一个题目的数组含义&#xff1a;dp【i】指的是从0跳到i所需要的最小的步骤。 2&#xff…

    【Block总结】PConv,部分卷积|即插即用

    论文信息 标题: Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks 论文链接: https://arxiv.org/pdf/2303.03667 GitHub链接: https://github.com/JierunChen/FasterNet 创新点 该论文的核心创新在于提出了一种新的运算符——部分卷积&#xff08;PCo…

    Maven的单元测试

    1. 单元测试的基本概念 单元测试&#xff08;Unit Testing&#xff09; 是一种软件测试方法&#xff0c;专注于测试程序中的最小可测试单元——通常是单个类或方法。通过单元测试&#xff0c;可以确保每个模块按预期工作&#xff0c;从而提高代码的质量和可靠性。 2.安装和配…

    【漫话机器学习系列】069.哈达马乘积(Hadamard Product)

    哈达马乘积&#xff08;Hadamard Product&#xff09; 哈达马乘积&#xff08;Hadamard Product&#xff09;是两个矩阵之间的一种元素级操作&#xff0c;也称为逐元素乘积&#xff08;Element-wise Product&#xff09;。它以矩阵的对应元素相乘为规则&#xff0c;生成一个新…

    【设计测试用例自动化测试性能测试 实战篇】

    &#x1f308;个人主页&#xff1a;努力学编程’ ⛅个人推荐&#xff1a; c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 设计测试用例…

    AJAX综合案例——图书管理

    黑马程序员视频地址&#xff1a; AJAX-Day02-10.案例_图书管理AJAX-Day02-10.案例_图书管理_总结_V1.0是黑马程序员前端AJAX入门到实战全套教程&#xff0c;包含学前端框架必会的&#xff08;ajaxnode.jswebpackgit&#xff09;&#xff0c;一套全覆盖的第25集视频&#xff0c…

    5.3.2 软件设计原则

    文章目录 抽象模块化信息隐蔽与独立性衡量 软件设计原则&#xff1a;抽象、模块化、信息隐蔽。 抽象 抽象是抽出事物本质的共同特性。过程抽象是指将一个明确定义功能的操作当作单个实体看待。数据抽象是对数据的类型、操作、取值范围进行定义&#xff0c;然后通过这些操作对数…

    Jason配置环境变量

    jason官网 https://jason-lang.github.io/ https://github.com/jason-lang/jason/releases 步骤 安装 Java 21 或更高版本 安装 Visual Studio Code 根据操作系统&#xff0c;请按照以下具体步骤操作 视窗 下载 Jason 的最新版本&#xff0c;选择“jason-bin-3.3.0.zip”…

    关于bash内建echo输出多行文本

    echo命令 使用下述命令可以判断当前使用的echo命令是内建命令还是外部命令 type echo有下述输出&#xff0c;说明是内建命令 bash的内建命令输出多行文本时会拆分多次写入 如果希望不拆分多次写入&#xff0c;可以借用tee工具 tee工具可以将命令的输出同时发送到终端和文件…

    消息队列篇--通信协议篇--TCP和UDP(3次握手和4次挥手,与Socket和webSocket的概念区别等)

    1、TCP和UDP概述 TCP&#xff08;传输控制协议&#xff0c;Transmission Control Protocol&#xff09;和UDP&#xff08;用户数据报协议&#xff0c;User Datagram Protocol&#xff09;都算是最底层的通信协议&#xff0c;它们位于OSI模型的传输层。*传输层的主要职责是确保…

    unity学习22:Application类其他功能

    目录 1 是否允许后台运行 1.1 Application.runInBackground&#xff0c;显示是否允许后台运行 1.2 设置的地方 2 打开URL 2.1 Application.OpenURL("") 打开超链接 3 退出游戏 3.1 Application.Quit() 退出游戏 4 场景相关 5 返回游戏状态 6 控制游戏的行…

    deepseek R1 14b显存占用

    RTX2080ti 11G显卡&#xff0c;模型7b速度挺快&#xff0c;试试14B也不错。 7B显存使用5.6G&#xff0c;14B显存刚好够&#xff0c;出文字速度差不多。 打算自己写个移动宽带的IPTV播放器&#xff0c;不知道怎么下手&#xff0c;就先问他了。

    .NET Core缓存

    目录 缓存的概念 客户端响应缓存 cache-control 服务器端响应缓存 内存缓存&#xff08;In-memory cache&#xff09; 用法 GetOrCreateAsync 缓存过期时间策略 缓存的过期时间 解决方法&#xff1a; 两种过期时间策略&#xff1a; 绝对过期时间 滑动过期时间 两…

    C++,STL 六大组件:容器、迭代器、算法、函数对象、适配器、分配器

    文章目录 引言一、容器&#xff08;Containers&#xff09;主要分类 二、迭代器&#xff08;Iterators&#xff09;三、算法&#xff08;Algorithms&#xff09;四、函数对象&#xff08;Functors&#xff09;五、适配器&#xff08;Adapters&#xff09;六、分配器&#xff08…

    996引擎 - NPC-添加NPC引擎自带形象

    996引擎 - NPC-添加NPC引擎自带形象 截图参考添加NPC参考资料截图参考 添加NPC 编辑NPC表:Envir\DATA\cfg_npclist.xls 1.1. 需要临时隐藏NPC时可以在id前加 // 1.2. 如果NPC朝向不对,可以调整dir 列。(按8方向,上是0顺时针数。我这里给的4) 1.3. 形象代码:NPC代码、怪物…

    【懒删除堆】力扣2349. 设计数字容器系统

    设计一个数字容器系统&#xff0c;可以实现以下功能&#xff1a; 在系统中给定下标处 插入 或者 替换 一个数字。 返回 系统中给定数字的最小下标。 请你实现一个 NumberContainers 类&#xff1a; NumberContainers() 初始化数字容器系统。 void change(int index, int numb…

    利用飞书机器人进行 - ArXiv自动化检索推荐

    相关作者的Github仓库 ArXivToday-Lark 使用教程 Step1 新建机器人 根据飞书官方机器人使用手册&#xff0c;新建自定义机器人&#xff0c;并记录好webhook地址&#xff0c;后续将在配置文件中更新该地址。 可以先完成到后续步骤之前&#xff0c;后续的步骤与安全相关&…

    SpringBoot 日志

    目录 一. 日志概述 二. 日志的使用 1. 打印日志 (1) 获取日志对象 (2) 输出要打印的内容 2. 日志框架简介 (1) 门面模式简介 (2) SLF4J 框架简介 3. 日志的格式 4. 日志的级别 5. 日志配置 (1) 配置日志级别 (2) 日志持久化存储 ① 配置日志文件名 ② 配置日志的…

    RK3568中使用QT opencv(显示基础图像)

    文章目录 一、查看对应的开发环境是否有opencv的库二、QT使用opencv 一、查看对应的开发环境是否有opencv的库 在开发板中的/usr/lib目录下查看是否有opencv的库&#xff1a; 这里使用的是正点原子的ubuntu虚拟机&#xff0c;在他的虚拟机里面已经安装好了opencv的库。 二、…