当前位置: 首页 > news >正文

Git 的特殊配置文件

文章目录

  • 1.前言
  • 2.Git 标准配置文件
    • .gitignore
      • 作用
      • 格式
      • 示例
    • .gitattributes
      • 作用
      • 格式
      • 示例
    • .gitmodules
      • 作用
      • 格式
      • 示例
    • .gitconfig
      • 作用
      • 格式
      • 示例
  • 3.非 Git 标准约定文件
    • .gitkeep
      • 简介
      • 示例
    • .gitacls
      • 作用
      • 格式
      • 示例
  • 参考文献

1.前言

Git 是一个强大的版本控制系统,它使用多个配置文件来管理项目的行为和设置。

2.Git 标准配置文件

.gitignore

作用

.gitignore 文件用于指定哪些文件或目录应被 Git 忽略,不进行版本控制。这有助于避免将不必要的文件(如临时文件、编译生成的文件、日志文件等)添加到版本库中。

格式

  • 每一行指定一个要忽略的模式。
  • 可以使用通配符:* 匹配零个或多个字符。? 匹配一个字符。** 匹配任意级别的目录。
  • 以 / 开头表示相对于仓库根目录的路径。
  • 以 # 开头的行是注释。

示例

# 忽略所有的日志文件及目录
*.log
/log/# 忽略临时文件及目录
*.tmp
/temp/# 忽略编译生成的文件
*.exe
/build/
/dist/# 忽略根目录下的 .env 文件
/.env# 忽略多层级目录
# 忽略 a/b, a/x/b, a/x/y/b 等
/a/**/b

.gitattributes

作用

.gitattributes 文件用于定义 Git 在处理特定文件或目录时的行为。可以设置文件的文本编码、行结束符、合并策略、差异输出等。

格式

  • 每一行指定一个路径模式和一个或多个属性。
  • 属性名可以是标准属性(如 text、binary、diff)或自定义属性。

示例

# 将所有的文本文件处理为 LF
*.txt text eol=lf# 将 PNG 文件标记为二进制文件
*.png binary# 禁用某些目录中文件的 diff 输出
internal/app/pb/** -diff# 对于特定类型的文件使用自定义的 diff 工具
*.md diff=markdown

.gitmodules

作用

.gitmodules 文件用于管理 Git 子模块的配置信息。

子模块是指在一个 Git 仓库中嵌套的另一个 Git 仓库。此文件包含子模块的路径和 URL,允许您在主仓库中引用其他仓库。

git submodule add https://github.com/XXX [<path>]

默认情况下,子模块会将子项目放到一个与仓库同名的目录中,即“XXX”。

如果你想要放到其他地方,那么可以在命令结尾添加一个不同的路径 path。如果这时运行 git status,注意到新的.gitmodules文件。该配置文件保存了项目 URL 与已经拉取的本地目录之间的映射。

格式

  • 使用 [submodule “path”] 格式来定义子模块。

示例

[submodule "libs/some-library"]path = libs/some-libraryurl = https://github.com/user/some-library.git[submodule "libs/another-library"]path = libs/another-libraryurl = https://github.com/user/another-library.git

.gitconfig

作用

.gitconfig 文件是 Git 的配置文件,它用于配置 Git 的行为和用户信息,如用户名、邮箱、颜色输出、别名等。

可通过 git config 命令进行配置,并将配置存储至 .gitconfig 文件。

根据其位置和作用级别,.gitconfig 文件可以分为三种主要类型:

  • 仓库级别的配置(.git/config)具有最高优先级。
  • 用户级别的配置(~/.gitconfig)次之。
  • 系统级别的配置(/etc/gitconfig)具有最低优先级。

格式

示例

.git/config 示例:

[core]repositoryformatversion = 0filemode = falsebare = falselogallrefupdates = truesymlinks = falseignorecase = true
[remote "origin"]url = git@gitlab.foo.com:foo/foo_svr.gitfetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]remote = originmerge = refs/heads/main

~/.gitconfig 示例:

[url "git@gitlab.foo.com:"]insteadOf = https://gitlab.foo.com/insteadOf = http://gitlab.foo.com/
[user]email = dablelv@foo.comname = dablelv
[core]autocrlf = inputeditor = vim
[alias]co = checkoutbr = branchci = commit

/etc/gitconfig 示例:

[diff "astextplain"]textconv = astextplain
[filter "lfs"]clean = git-lfs clean -- %fsmudge = git-lfs smudge -- %fprocess = git-lfs filter-processrequired = true
[http]sslBackend = opensslsslCAInfo = C:/Program Files/Git/mingw64/etc/ssl/certs/ca-bundle.crt
[core]autocrlf = truefscache = truesymlinks = false
[pull]rebase = false
[credential]helper = manager
[credential "https://dev.azure.com"]useHttpPath = true
[init]defaultBranch = master

3.非 Git 标准约定文件

.gitkeep

简介

Git 默认是不跟踪空文件夹和空目录的,所以要想推送空文件夹或空目录,就必须在里面放一个文件,即使是空文件也行,但必须要有。

于是,就有了一个不成文的规定,通常我们放一个名为 .gitkeep 的文件到空文件夹或空目录,以此实现其 Git 跟踪。该规定并没有在官方文档中定义,只是一个公认的约定罢了。

.gitkeep 实则是一个空的占位文件,并没有其它特性,通俗点讲,.fu*k 可以实现和 .gitkeep 相同的功能。

示例

假设您有一个项目目录结构如下:

my_project/
├── src/
└── empty_folder/

如果您希望在 Git 中保留 empty_folder,可以在该目录中创建一个 .gitkeep 文件:

my_project/
└── empty_folder/└── .gitkeep

.gitacls

作用

.gitacls 文件用于定义 Git 仓库的访问控制列表(ACL,Access Control List)。虽然这个文件并不是 Git 的标准部分,但在一些特定环境中,特别是与安全性和权限管理相关的项目中,可能会使用此文件来控制对仓库中文件或目录的访问权限。

格式

具体内容和格式取决于团队的约定。

示例

# 定义哪些用户或组可以访问特定目录
# 例如,允许 user1 和 user2 访问 src/ 目录
src/ user1 user2

参考文献

Git - gitignore Documentation
Git - gitattributes Documentation
Git - gitmodules Documentation

相关文章:

Git 的特殊配置文件

文章目录 1.前言2.Git 标准配置文件.gitignore作用格式示例 .gitattributes作用格式示例 .gitmodules作用格式示例 .gitconfig作用格式示例 3.非 Git 标准约定文件.gitkeep简介示例 .gitacls作用格式示例 参考文献 1.前言 Git 是一个强大的版本控制系统&#xff0c;它使用多个…...

数据的表现形式(1)

数据的表现形式 西文字符编码 ASCII码&#xff08;美国信息交换标准码&#xff09; 计算机内部用一个字节&#xff08;8位二进制&#xff09;&#xff0c;来存放一个7位ASCII码&#xff0c;最高位为“0”&#xff0c;共 可以表示128个不同字符 ASCII码中&#xff0c;0是48&…...

《高频电子线路》—— 调幅

文章内容来源于【中国大学MOOC 华中科技大学通信&#xff08;高频&#xff09;电子线路精品公开课】&#xff0c;此篇文章仅作为笔记分享。 调幅 普通调幅 AM 普通调幅&#xff0c;也属于线性调制&#xff0c;需要了解其时域和频域。 时域&#xff08;表达式&#xff09; vΩ…...

ubuntu22.04安装ROS2Humble

参考链接 Ubuntu22.04——ROS2安装以及小海龟画圆 Ubuntu 22.04 安装 ros noetic Slam_in_autonomous_driving(一) 环境配置...

软中端,硬中断(学习笔记)

/proc/softirqs 提供了软中断的运行情况&#xff1b; /proc/interrupts 提供了硬中断的运行情况。 以下图片展示的是软中断内容&#xff1a; 在查看 /proc/softirqs 文件内容时&#xff0c;你要特别注意以下这两点。 第一&#xff0c;要注意软中断的类型&#xff0c;也就是这…...

scIDST:弱监督学习推断单细胞转录组数据中的疾病进展阶段

背景&#xff1a;患者来源组织中的单个细胞&#xff0c;每个都处于不同的病理阶段&#xff0c;因此这种细胞变异性阻碍了随后的差异基因表达分析。 结果&#xff1a;为了克服这种异质性问题&#xff0c;作者提出了一种新的深度学习方法&#xff0c;scIDST&#xff0c;该方法可以…...

Linux 下执行定时任务之 Systemd Timers

不知道 ECS 因为什么缘故&#xff0c;上面安装的 MySQL 服务老是不定期挂掉&#xff0c;本来想通过 Linux 得 Cron 配置个半小时的定时检测任务&#xff0c;结果一直没有执行&#xff0c;因此又尝试使用了 Systemd Timers 进行了重新配置&#xff0c;简要做个记录。 Systemd Ti…...

flutter 专题二 Flutter状态管理之Riverpod 0.8.4

一 、flutter 有哪些状态管理方式 Flutter的状态管理方式有很多&#xff0c;Redux、 Bloc、 MobX、Provider等等。单单一个Provider&#xff0c;我也见到了各种组合&#xff0c;例如ChangeNotifier Provider / StateNotifier Provider&#xff08; freezed&#xff09;。各…...

【Linux】从零开始使用多路转接IO --- poll

碌碌无为&#xff0c;则余生太长&#xff1b; 欲有所为&#xff0c;则人生苦短。 --- 中岛敦 《山月记》--- 从零开始使用多路转接IO 1 前言1 poll接口介绍3 代码编写4 总结 1 前言 上一篇文章我们学习了多路转接中的Select&#xff0c;其操作很简单&#xff0c;但有一些缺…...

Docker配置宿主机目录和网络映射

容器挂载宿主机目录 在Docker中&#xff0c;你可以通过-v或--volume选项将宿主机的目录挂载到容器中。这可以让你在容器和宿主机之间共享文件。 例如&#xff0c;如果你想将宿主机的/home/user/data目录挂载到容器的/data目录&#xff0c;你可以使用以下命令&#xff1a; do…...

第十七课 component组件解析

component组件解析 component组件的写法在众多组件写法中算是比较简单的&#xff0c;component组件结构组成如下&#xff1a; 1&#xff09;组件名 2&#xff09;组件模板 3&#xff09;利用Vue对象进行生成 基础示例&#xff1a; <div id"app"><test>…...

求余和求模是不是一样的,就要看看计算机中的 fix 和 floor 区别

在计算机中&#xff0c;fix和floor是两个不同的取整函数&#xff0c;它们各自有不同的取整规则。以下是fix和floor的详细区别&#xff1a; 一、定义与功能 fix函数 定义&#xff1a;fix函数是朝零方向取整的函数&#xff0c;即它会返回小于或等于&#xff08;对于正数&#xf…...

00 递推和递归的核心讲解

递归的步骤 说 f(n)含义返回/xx f(n)等价式子在第二步中观察趋势&#xff0c;发现边界值&#xff08;分类递归&#xff09;和终止值&#xff08;return&#xff09; 递归优化思路 记忆化 递推/动态规划的步骤 说f(n)含义循环 关系式列 初值 综上&#xff0c;题目分为两类&a…...

深度学习常用开源数据集介绍【持续更新】

DIV2K 介绍&#xff1a;DIV2K是一个专为 图像超分辨率&#xff08;SR&#xff09; 任务设计的高质量数据集&#xff0c;广泛应用于计算机视觉领域的研究和开发。它包含800张高分辨率&#xff08;HR&#xff09;训练图像和100张高分辨率验证图像&#xff0c;每张图像都具有极高…...

rust编写的系统监测器

系统监测器 技术栈 rusttaurivue3vue-echartsrsbuild 软件介绍 用于查看电脑的硬件信息&#xff0c;实时监测cpu&#xff0c;内存&#xff0c;硬盘&#xff0c;网络&#xff0c;进程等系统资源 图形化&#xff0c;动态化展示&#xff0c;美观实用 软件截图 下载 https:/…...

【MyBatis源码】CacheKey缓存键的原理分析

文章目录 Mybatis缓存设计缓存KEY的设计CacheKey类主体CacheKey组成CacheKey如何保证缓存key的唯一性 Mybatis缓存设计 MyBatis 每秒过滤众多数据库查询操作&#xff0c;这对 MyBatis 缓存键的设计提出了很高的要求。MyBatis缓存键要满足以下几点。 无碰撞&#xff1a;必须保证…...

034_Structural_Transient_In_Matlab结构动力学问题求解

结构动态问题 问题描述 我们试着给前面已经做过的问题上加一点有趣的东西。 结构静力学求解 当时求解这个问题&#xff0c;在最外面的竖直切面加载了一个静态的固定的力。下面我们试试看在上方的表面增加一个脉冲压力载荷。 采用统一的有限元框架&#xff0c;定义问题&…...

项目模块十五:HttpResponse模块

一、模块设计思路 存储HTTP应答要素&#xff0c;提供简单接口 二、成员变量 int _status; // 应答状态码 unordered_map<string, string> _headers; // 报头字段 string _body; // 应答正文 bool _redirect_flag; // 是否重定向信息 stri…...

推荐一款优秀的pdf编辑器:Ashampoo PDF Pro

Ashampoo PDF Pro是管理和编辑 PDF 文档的完整解决方案。程序拥有您创建、转换、编辑和保护文档所需的一切功能。根据需要可以创建特定大小的文档&#xff0c;跨设备可读&#xff0c;还可以保护文件。现在您还能像编辑Word文档一样编辑PDF! 软件特点 轻松处理文字 如 Microso…...

【系统架构设计师】2024年上半年真题论文: 论模型驱动架构设计方法及其应用(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2024年上半年 试题3)解题思路1、模型驱动架构能够为软件开发带来的好处2、模型驱动架构的开发过程论文素材参考真题题目(2024年上半年 试题3) 模型驱动架构设计是一种用于应用系统开发的软件设计方法…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...