Git忽略除了指定文件以外的所有文件

news2024/12/27 7:25:10

前言:最近发现vs很多杂七杂八的文件都被传到gitee上了,但是我本意只是想把一些主要的文件如 .cpp文件传到gitee,因此考虑到了.gitignore文件的使用。

.gitignore文件的作用


.gitignore是一个特殊的文件,用于告诉Git哪些文件或目录应该被忽略,不进行版本控制。通过使用.gitignore文件,我们可以防止某些敏感或临时文件被意外提交到版本库中。在Gi中,.gitignore文件的规则是基于Unix的文件模式匹配,我们可以通过简单的正则表达式指定要忽略的文件或目录。


创建.gitignore文件

.gitignore文件可以位于项目的根目录中,也可以位于特定子目录中,具体位置根据项目需求而定。我们可以通过以下步骤来创建一个.gitignore文件:

  1. 打开项目的根目录或指定的子目录。
  2. 创建一个名为.gitignore的新文件。
  3. 在文件中添加需要忽略的文件或目录。

以下是一个示例.gitignore文件的内容:

# 忽略所有文件和目录
*

# 但是排除以下文件
!file1.txt
!file2.txt

在上面的示例中,*通配符将排除所有文件和目录。但是,通过使用!前缀,我们可以指定要保留的文件。在这种情况下,file1.txtfile2.txt将被包括进来,并被Git版本控制。


.gitignore规则

除了上述示例中的基本规则外,下面是一些常用的.gitignore规则示例:

通用规则:
*:忽略所有文件和文件夹中的内容。
!:取消忽略某个文件或文件夹。
!*/:确保文件夹本身被 Git 跟踪(但不跟踪文件夹中的内容)。
**:递归匹配文件夹和文件。

具体细节规则:

  1. 排除指定目录下的所有文件
path/to/directory/

上述规则将会忽略path/to/directory/目录下的所有文件和子目录。

  1. 排除指定文件类型
*.ext

上述规则将会忽略项目中所有.ext扩展名的文件。例如,*.txt将会忽略所有的文本文件。

  1. 通过目录排除指定文件类型
dir/*.ext

上述规则将会忽略dir/目录下所有以.ext扩展名结尾的文件。

  1. 排除文件夹及其内容
dir/

上述规则将会忽略dir/目录以及该目录下的所有文件和子目录。

  1. 排除指定文件名
filename

上述规则将会忽略filename


示例

假设我们有以下文件和目录结构:

- project/
  - src/
    - main.cpp
    - utils/
      - helper.cpp
      - helper.h
    - build/
  - docs/
    - README.md
  - .gitignore

如果我们只想保留main.cpphelper.cpphelper.h文件,我们可以创建一个.gitignore文件并指定以下规则:

# 忽略所有文件和目录
*

# 但是排除以下文件和目录
!src/main.cpp
!src/utils/helper.cpp
!src/utils/helper.h

这样,除了我们明确指定的这几个文件外,其他所有文件和目录都将被Git忽略。


更通用的.gitignore配置

比如我是写C++的项目,我想只追踪.cpp文件的同时,保留文件夹结构,那么我的配置是:

# 忽略所有文件和文件夹
*

# 允许所有文件夹(不追踪内容)
!*/

# 允许 .cpp 文件
!*.c

总结

使用.gitignore文件可以方便地管理项目中需要忽略的文件和目录。通过简单的规则,我们可以排除除了指定文件以外的所有文件,确保Git版本控制系统只关注我们感兴趣的文件。正确地使用.gitignore文件将有助于提高项目开发的效率和可维护性,避免意外提交敏感或临时文件。在本文中,我们介绍了.gitignore文件的作用和使用方法,并提供了一些常用的规则示例。

通过创建一个.gitignore文件,并在其中按照规则指定需要忽略的文件和目录,我们可以更好地管理项目中的版本控制。同时,还可以避免将一些敏感信息、临时文件或自动生成的文件提交到版本库中,保持库的整洁和安全。

需要注意的是,每个项目都有不同的需求,.gitignore文件的内容应根据具体情况进行调整和定制。当项目增加或移除文件时,可能需要更新.gitignore文件来确保新的文件也被正确地忽略或包含进版本控制。

总的来说,.gitignore是一个非常有用的工具,它使得我们可以更好地控制Git版本控制系统,只关注项目中真正重要的文件,并避免不需要的文件影响开发流程和版本库的管理。合理使用.gitignore文件可以提高项目的透明度和可维护性,帮助团队更好地协作开发。

相关的Git文档中也提供了更多详细的规则和示例,可以根据实际需要进行参考和扩展。在日常开发中,善于使用.gitignore文件可以为项目带来更好的版本管理和代码维护。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle检查加强版本

支持更丰富了,代码也更乱了 #!/bin/bash## 实例个数 告警日志 实例状态 会话 活动会话 锁 集群状态 服务状态 磁盘空间 侦听日志 ## 单机、RAC Linux、AIX 11g、19c、23ai ## 依赖adrci配置正常,也可以改为 getAlert() ## ver 1.2case uname inAIX)ps…

RoBERTa- 稳健优化的 BERT 预训练模型详解

一、引言 自 BERT(Bidirectional Encoder Representations from Transformers)问世,预训练语言模型在自然语言处理(NLP)领域掀起革命浪潮,凭卓越表现大幅刷新诸多任务成绩。RoBERTa 承继 BERT 架构&#x…

【流程图】各元素形状和含义

判定、文档、数据、数据库、流程处理节点 矩形 - 动词 平行四边形 - 图像 下波浪 - 数据 图片来源http://baike.cu12.com/bkss/62449.shtml

「Mac畅玩鸿蒙与硬件41」UI互动应用篇18 - 多滑块联动控制器

本篇将带你实现一个多滑块联动的控制器应用。用户可以通过拖动多个滑块,动态控制不同参数(如红绿蓝三色值),并实时显示最终结果。我们将以动态颜色调节为例,展示如何结合状态管理和交互逻辑,打造一个高级的…

PyQt6 开发基础

<?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>Form</class><widget class"QWidget" name"Form"><property name"geometry"><rect><x>0<…

Kafka如何保证消息可靠?

大家好&#xff0c;我是锋哥。今天分享关于【Kafka如何保证消息可靠&#xff1f;】面试题。希望对大家有帮助&#xff1b; Kafka如何保证消息可靠&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka通过多种机制来确保消息的可靠性&#xff0c;主要包…

pytest(二)excel数据驱动

一、excel数据驱动 excel文件内容 excel数据驱动使用方法 import openpyxl import pytestdef get_excel():excel_obj openpyxl.load_workbook("../pytest结合数据驱动-excel/data.xlsx")sheet_obj excel_obj["Sheet1"]values sheet_obj.valuescase_li…

类和对象(中)(类的默认成员函数)+日期类实现

1.类的默认成员函数 默认成员函数就是用户没有显示实现&#xff0c;编译器会自动生成的成语函数称为默认成员函数。一个类&#xff0c;我们不写的情况下编译器会默认生成6个默认成员函数。C11后还增加了两个默认成员函数&#xff0c;移动构造和移动赋值&#xff08;这一节暂时…

详解版本控制工作原理及优势,常见的版本控制系统对比(HelixCore、Git、SVN等)

什么是版本控制软件&#xff1f;从基础层面来说&#xff0c;版本控制&#xff08;也可称版本管理&#xff09;就是随时间跟踪和管理文件变更的过程&#xff0c;而版本控制软件有助于实现这一过程的自动化。但这仅仅是其功能及其重要性的开端。 什么是版本控制&#xff1f; 版本…

记录一次网关异常

记一次网关异常 网关时不时就会出现下面的异常。关键是不知道什么时候就会报错&#xff0c;并且有时候就算什么都不操作&#xff0c;也会导致这个异常。 ERROR org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in schedul…

SpringMVC跨域问题解决方案

当Web应用程序尝试从一个源&#xff08;例如 http://localhost:9090&#xff09;向另一个不同的源&#xff08;例如 http://localhost:8080&#xff09;发起请求时&#xff0c;发现报错&#xff1a; 报错原因&#xff1a;请求被CORS策略拦截了 跨域问题概述 当Web应用程序尝试…

现在的电商风口已经很明显了

随着电商行业的不断发展&#xff0c;直播带货的热潮似乎正逐渐降温&#xff0c;而货架电商正成为新的焦点。抖音等平台越来越重视货架电商&#xff0c;强调搜索功能的重要性&#xff0c;预示着未来的电商中心将转向货架和搜索。 在这一转型期&#xff0c;AI技术与电商的结合为…

芯驰X9SP与汽车麦克风-打造无缝驾驶体验

当今汽车技术的进步不仅提升了驾驶体验&#xff0c;还改变了我们与车辆互动的方式。汽车麦克风作为车内语音控制系统的重要组成部分&#xff0c;正逐渐成为现代汽车的标配。 技术原理 汽车麦克风主要依赖于声音传感技术&#xff0c;通常包括电容式麦克风和动圈式麦克风。这些…

vue3项目搭建-6-axios 基础配置

axios 基础配置 安装 axios npm install axios 创建 axios 实例&#xff0c;配置基地址&#xff0c;配置拦截器,目录&#xff1a;utils/http.js 基地址&#xff1a;在每次访问时&#xff0c;自动作为相对路径的根 // axios 基础封装 import axios from "axios";…

【北京迅为】iTOP-4412全能版使用手册-第三十二章 网络通信-TCP套字节

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…

量子人工智能产业发展现状及趋势(上)

文章目录 前言一、量子人工智能产业发展现状1.产业链上游&#xff1a;涵盖基础硬件与量子计算整机开发&#xff0c;参与厂商众多&#xff0c;发展相对成熟2.产业链中游&#xff1a;涉及人工智能算法与应用开发&#xff0c;参与企业均在积极探索以赢得市场先机3.产业链下游&…

企业如何构建自己的 AI 编码能力

文章摘要 在数字化转型的浪潮中&#xff0c;企业对于提升开发效率和代码质量的需求日益迫切。AI 编码能力作为一种新兴的技术力量&#xff0c;正逐渐成为企业技术竞争力的关键。本文将探讨企业如何结合代码大模型和私域数据&#xff0c;构建属于自己的 AI 编码能力。 全文阅读…

算法日记 40 day 单调栈

最后两题了&#xff0c;直接上题目。 题目&#xff1a;接雨水 42. 接雨水 - 力扣&#xff08;LeetCode&#xff09; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1…

SpringBoot集成Kafka和avro和Schema注册表

Schema注册表 为了提升kafka的性能&#xff0c;减少网络传输和存储的数据大小&#xff0c;可以把数据的schema部分单独存储到外部的schema注册表中&#xff0c;整体架构如下图所示&#xff1a; 1&#xff09;把所有数据需要用到的 schema 保存在注册表里&#xff0c;然后在记…

c++领域展开第一幕——入门基础(命名空间、iostream、缺省参数、函数重载、nullptr、inline(内联函数))超详细!!!!

文章目录 前言一、c的第一个程序二、命名空间2.1 namespace 的价值2.2 namespace 的定义2.3 命名空间的使用 三、c的输入和输出四、缺省参数五、函数重载六、nullptr七、inline总结 前言 今天小编带着大家进入c的大门&#xff0c;虽然c难&#xff0c;但好事多磨&#xff0c;一起…