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 是一个强大的版本控制系统,它使用多个…...
数据的表现形式(1)
数据的表现形式 西文字符编码 ASCII码(美国信息交换标准码) 计算机内部用一个字节(8位二进制),来存放一个7位ASCII码,最高位为“0”,共 可以表示128个不同字符 ASCII码中,0是48&…...
《高频电子线路》—— 调幅
文章内容来源于【中国大学MOOC 华中科技大学通信(高频)电子线路精品公开课】,此篇文章仅作为笔记分享。 调幅 普通调幅 AM 普通调幅,也属于线性调制,需要了解其时域和频域。 时域(表达式) vΩ…...
ubuntu22.04安装ROS2Humble
参考链接 Ubuntu22.04——ROS2安装以及小海龟画圆 Ubuntu 22.04 安装 ros noetic Slam_in_autonomous_driving(一) 环境配置...
软中端,硬中断(学习笔记)
/proc/softirqs 提供了软中断的运行情况; /proc/interrupts 提供了硬中断的运行情况。 以下图片展示的是软中断内容: 在查看 /proc/softirqs 文件内容时,你要特别注意以下这两点。 第一,要注意软中断的类型,也就是这…...
scIDST:弱监督学习推断单细胞转录组数据中的疾病进展阶段
背景:患者来源组织中的单个细胞,每个都处于不同的病理阶段,因此这种细胞变异性阻碍了随后的差异基因表达分析。 结果:为了克服这种异质性问题,作者提出了一种新的深度学习方法,scIDST,该方法可以…...
Linux 下执行定时任务之 Systemd Timers
不知道 ECS 因为什么缘故,上面安装的 MySQL 服务老是不定期挂掉,本来想通过 Linux 得 Cron 配置个半小时的定时检测任务,结果一直没有执行,因此又尝试使用了 Systemd Timers 进行了重新配置,简要做个记录。 Systemd Ti…...
flutter 专题二 Flutter状态管理之Riverpod 0.8.4
一 、flutter 有哪些状态管理方式 Flutter的状态管理方式有很多,Redux、 Bloc、 MobX、Provider等等。单单一个Provider,我也见到了各种组合,例如ChangeNotifier Provider / StateNotifier Provider( freezed)。各…...
【Linux】从零开始使用多路转接IO --- poll
碌碌无为,则余生太长; 欲有所为,则人生苦短。 --- 中岛敦 《山月记》--- 从零开始使用多路转接IO 1 前言1 poll接口介绍3 代码编写4 总结 1 前言 上一篇文章我们学习了多路转接中的Select,其操作很简单,但有一些缺…...
Docker配置宿主机目录和网络映射
容器挂载宿主机目录 在Docker中,你可以通过-v或--volume选项将宿主机的目录挂载到容器中。这可以让你在容器和宿主机之间共享文件。 例如,如果你想将宿主机的/home/user/data目录挂载到容器的/data目录,你可以使用以下命令: do…...
第十七课 component组件解析
component组件解析 component组件的写法在众多组件写法中算是比较简单的,component组件结构组成如下: 1)组件名 2)组件模板 3)利用Vue对象进行生成 基础示例: <div id"app"><test>…...
求余和求模是不是一样的,就要看看计算机中的 fix 和 floor 区别
在计算机中,fix和floor是两个不同的取整函数,它们各自有不同的取整规则。以下是fix和floor的详细区别: 一、定义与功能 fix函数 定义:fix函数是朝零方向取整的函数,即它会返回小于或等于(对于正数…...
00 递推和递归的核心讲解
递归的步骤 说 f(n)含义返回/xx f(n)等价式子在第二步中观察趋势,发现边界值(分类递归)和终止值(return) 递归优化思路 记忆化 递推/动态规划的步骤 说f(n)含义循环 关系式列 初值 综上,题目分为两类&a…...
深度学习常用开源数据集介绍【持续更新】
DIV2K 介绍:DIV2K是一个专为 图像超分辨率(SR) 任务设计的高质量数据集,广泛应用于计算机视觉领域的研究和开发。它包含800张高分辨率(HR)训练图像和100张高分辨率验证图像,每张图像都具有极高…...
rust编写的系统监测器
系统监测器 技术栈 rusttaurivue3vue-echartsrsbuild 软件介绍 用于查看电脑的硬件信息,实时监测cpu,内存,硬盘,网络,进程等系统资源 图形化,动态化展示,美观实用 软件截图 下载 https:/…...
【MyBatis源码】CacheKey缓存键的原理分析
文章目录 Mybatis缓存设计缓存KEY的设计CacheKey类主体CacheKey组成CacheKey如何保证缓存key的唯一性 Mybatis缓存设计 MyBatis 每秒过滤众多数据库查询操作,这对 MyBatis 缓存键的设计提出了很高的要求。MyBatis缓存键要满足以下几点。 无碰撞:必须保证…...
034_Structural_Transient_In_Matlab结构动力学问题求解
结构动态问题 问题描述 我们试着给前面已经做过的问题上加一点有趣的东西。 结构静力学求解 当时求解这个问题,在最外面的竖直切面加载了一个静态的固定的力。下面我们试试看在上方的表面增加一个脉冲压力载荷。 采用统一的有限元框架,定义问题&…...
项目模块十五:HttpResponse模块
一、模块设计思路 存储HTTP应答要素,提供简单接口 二、成员变量 int _status; // 应答状态码 unordered_map<string, string> _headers; // 报头字段 string _body; // 应答正文 bool _redirect_flag; // 是否重定向信息 stri…...
推荐一款优秀的pdf编辑器:Ashampoo PDF Pro
Ashampoo PDF Pro是管理和编辑 PDF 文档的完整解决方案。程序拥有您创建、转换、编辑和保护文档所需的一切功能。根据需要可以创建特定大小的文档,跨设备可读,还可以保护文件。现在您还能像编辑Word文档一样编辑PDF! 软件特点 轻松处理文字 如 Microso…...
【系统架构设计师】2024年上半年真题论文: 论模型驱动架构设计方法及其应用(包括解题思路和素材)
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2024年上半年 试题3)解题思路1、模型驱动架构能够为软件开发带来的好处2、模型驱动架构的开发过程论文素材参考真题题目(2024年上半年 试题3) 模型驱动架构设计是一种用于应用系统开发的软件设计方法…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
