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

Sourcetree——使用.gitignore忽略文件或者文件夹

一、为何需要文件忽略机制?

1.1 为什么要会略?

对于开发者而言,明智地选择忽略某些文件类型,能带来三大核心优势:

  • 仓库纯净性:避免二进制文件、编译产物等污染代码库

  • 安全防护:防止敏感信息(如API密钥、数据库凭证)意外泄露

  • 效率提升:减少无意义的版本追踪,加速克隆和拉取操作

1.2 通常忽略那些文件?

典型需忽略文件类型

文件类别常见示例
系统生成文件.DS_StoreThumbs.dbDesktop.ini
编译产物*.class(Java)、*.o(C++)、*.pyc(Python)、/dist/目录
依赖管理目录node_modules/vendor/target/
开发环境文件.idea/.vscode/.env
日志与临时文件*.log*.tmpnpm-debug.log*

示例:

我只修改了.cmd文件,但提交修改的时候,有很多编译产物

二、.gitignore配置深度解析

2.1 文件作用域与优先级

# 层级生效机制(从上到下优先级递减)
1. 项目根目录/.gitignore         # 作用于整个项目
2. 子目录/.gitignore                # 作用于该目录及其子目录
3. $GIT_DIR/info/exclude      # 本地仓库级配置
4. ~/.gitignore_global             # 全局配置(需执行git config --global core.excludesfile ~/.gitignore_global)

2.2 高级语法规则

# 基础匹配
*.log                    # 所有.log文件
!error.log             # 排除规则(保留error.log)

# 目录匹配
build/                  # 忽略所有build目录
doc/*.txt             # 忽略doc目录下txt文件(不递归子目录)

# 通配符扩展
temp?                # 匹配temp后接一个字符的文件(如tempa、temp1)
config.[tj]s          # 匹配config.ts和config.js

# 注释与范围
[0-9].csv             # 匹配数字开头的csv文件
# 重要:不要提交密钥文件
secret.key

.gitignore 的规则是 从上到下逐行匹配 的,后面的规则可以覆盖前面的规则。

否定规则(!)是唯一可以覆盖前面忽略规则的方式。 

三、Sourcetree的可视化设置

3. 1首次提交.gitignore

3.1.1点击设置

3.1.2在仓库设置中选择高级,点击编辑。 

3.3.3在gitignore中添加需要忽略的文件。

可以使用gitignore.io生成模板

以下是一个常用的.gitignore文件模板,可根据个人项目需求,按照.gitignore配置的语法规则2.2,进行增删改查。

# macOS system files
.DS_Store
.AppleDouble
.LSOverride
Icon
._*# IDE - IntelliJ IDEA
.idea/
*.iml
*.iws
*.ipr
out/
.idea_modules/# IDE - VSCode
.vscode/
*.code-workspace# Obsidian files
.obsidian/# Compiled files
*.class
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar# Logs and databases
*.log
*.sqlite
*.db# Node
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*# Python
__pycache__/
*.py[cod]
*$py.class
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg# Temporary files
*.swp
*.swo
*~

然后重新提交就好啦,这里.gitignore文件也要提交。

一定注意.gitignore文件要提交成功下次才能忽略设置的文件或目录! 

 3.2对于已经被git追踪的文件

如果是第一次提交,就会发现忽略文件已经没有了,不是第一次的这个时候你要是提交,就会发现你想要忽略的文件要是有改动,依然让你提交,这是因为这些文件已经加入git的版本控制库了,仅仅添加.gitignore文件是不够的,需要先清除缓存才行。

3.2.1清除Git缓存:

# 删除Git缓存(不会删除实际文件)
git rm -r --cached .

3.2.2 添加新的.gitignore文件,提交更改

# 添加.gitignore文件到Git
git add .gitignore# 添加其他文件
git add .# 提交更改
git commit -m "Add .gitignore file and remove ignored files from git"

3.3.3 推送到远程仓库

# 推送到远程仓库
git push origin master  # 或者其他分支名

 示例问题解决:(这里我尝试修改了其他文件)

参考连接:

1.【Git】如何添加和更新.gitignore文件_git添加ignore-CSDN博客

2.Sourcetree软件中添加git的.gitignore文件忽略某些文件提交_sourcetree忽略文件-CSDN博客 

相关文章:

Sourcetree——使用.gitignore忽略文件或者文件夹

一、为何需要文件忽略机制? 1.1 为什么要会略? 对于开发者而言,明智地选择忽略某些文件类型,能带来三大核心优势: 仓库纯净性:避免二进制文件、编译产物等污染代码库 安全防护:防止敏感信息&…...

unity使用mesh 画图(1)

plane 圆 空心椭圆 椭圆 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class DrawMeshManager {static DrawMeshManager instance;public static DrawMeshManager Instance {get {if (instance ! null){retu…...

本地部署 OpenManus 保姆级教程(Windows 版)

一、环境搭建 我的电脑是Windows 10版本,其他的没尝试,如果大家系统和我的不一致,请自行判断,基本上没什么大的出入啊。 openManus的Git地址:https://github.com/mannaandpoem/OpenManus 根据官网的两种安装推荐方式如…...

视频推拉流:EasyDSS平台直播通道重连转推失败原因排查与解决

视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 用户使用EasyDSS平台对直播通道进行转推,发现只要关闭…...

机器人领域专业名词汇总

1. 电机与驱动 电机类型 DC Motor(直流电机):通过直流电源驱动的电机。Stepper Motor(步进电机):通过脉冲信号控制旋转角度的电机。Servo Motor(伺服电机):带有反馈控制的…...

成为超人 21:超人怎么学?技能的学习,如编程

成为超人 21:超人怎么学?技能的学习,如编程 ① 搞定全能自恋② 超人怎么学?③ 耐心怎么来? 宇树机器人王兴兴:奇迹也有算法,做成事没有那么难,就是把不可能三个字,拆解成…...

【科研绘图系列】python绘制分组点图(grouped dot plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据函数`generateRectBoxDF` 函数主要作用参数解释逻辑流程`nmfDotPlot` 函数主要作用参数解释逻辑流程画图1画图2画图3画图4介绍 【科研绘图系列】python绘制…...

Springfox、Springdoc和Swagger

Springfox、Swagger 和 Springdoc Springfox、Swagger 和 Springdoc 是用于在 Spring Boot 项目中生成API文档的工具,但它们之间有显著的区别和演进关系: 1.Swagger 简介 Swagger 是一个开源项目,旨在为 RESTful APIs 提供交互式文档。最…...

在Spring Boot项目中如何实现获取FTP远端目录结构

Java语言实现获取FTP远端目录结构的实现方式有多种,在Spring Boot 项目中,最简单和快速的方式就是使用Spring Integration 实现FTP相关的功能。 前言 本篇的示例和演示基于Windows 的FTP 服务,关于如何在Windows 开启FTP服务可以参考: Windows 如何开启和使用FTP服务 本…...

Flutter_学习记录_device_info_plus 插件获取设备信息

引入三方库device_info_plus导入头文件 import package:device_info_plus/device_info_plus.dart;获取设备信息的主要代码 DeviceInfoPlugin deviceInfoPlugin DeviceInfoPlugin(); BaseDeviceInfo deviceInfo await deviceInfoPlugin.deviceInfo;完整案例 import package…...

Java高频面试之集合-10

hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:详解红黑树?HashMap为什么不用二叉树/平衡树呢? 一、红黑树(Red-Black Tree&#xff…...

never_give_up

一个很有意思的题: never_give_up - Bugku CTF平台 注意到注释里面有1p.html,我们直接在源代码界面看,这样就不会跳转到它那个链接的: 然后解码可得: ";if(!$_GET[id]) {header(Location: hello.php?id1);exi…...

Python Selenium库入门使用,图文详细。附网页爬虫、web自动化操作等实战操作。

文章目录 前言1 创建conda环境安装Selenium库2 浏览器驱动下载(以Chrome和Edge为例)3 基础使用(以Chrome为例演示)3.1 与浏览器相关的操作3.1.1 打开/关闭浏览器3.1.2 访问指定域名的网页3.1.3 控制浏览器的窗口大小3.1.4 前进/后…...

聊天室Python脚本——ChatGPT,好用

下面提供两个 Python 脚本,一个作为服务器端(chat_server.py),一个作为客户端(chat_client.py)。你可以在一台电脑上运行服务器脚本,然后在不同电脑上运行客户端脚本(连接时指定服务…...

AI4CODE】3 Trae 锤一个贪吃蛇的小游戏

【AI4CODE】目录 【AI4CODE】1 Trae CN 锥安装配置与迁移 【AI4CODE】2 Trae 锤一个 To-Do-List 这次还是采用 HTML/CSS/JAVASCRIPT 技术栈 Trae 锤一个贪吃蛇的小游戏。 1 环境准备 创建一个 Snake 的子文件夹,清除以前的会话记录。 2 开始构建 2.1 输入会…...

【语料数据爬虫】Python爬虫|批量采集会议纪要数据(1)

前言 本文是该专栏的第2篇,后面会持续分享Python爬虫采集各种语料数据的的干货知识,值得关注。 在本文中,笔者将主要来介绍基于Python,来实现批量采集“会议纪要”数据。同时,本文也是采集“会议纪要”数据系列的第1篇。 采集相关数据的具体细节部分以及详细思路逻辑,笔…...

Linux 进程的一生(一):进程与线程的创建机制解析

在 Linux 操作系统中,每个任务都以「进程」的形式存在。但 Linux 下的「线程」又是什么?Linux 并没有单独定义一种全新数据结构来表示线程,而是将线程视为一种特殊的进程——一种共享资源的轻量级进程。然而,在具体实现和运行机制…...

【面试题集合】

目录 强缓存VS协商缓存**一、强缓存(本地缓存)**1. **定义**2. **核心 HTTP 头**3. **缓存生效流程**4. **应用场景** **二、协商缓存(条件请求)**1. **定义**2. **核心 HTTP 头**3. **缓存生效流程**4. **应用场景** **三、强缓存…...

【Academy】SSRF ------ Server-side request forgery

SSRF ------ Server-side request forgery 1. 什么是 SSRF?2. SSRF 攻击的影响是什么?3. 常见的 SSRF 攻击3.1 针对服务器的 SSRF 攻击3.2 针对其他后端系统的 SSRF 攻击 4. 规避常见的 SSRF 防御4.1 具有基于黑名单的输入过滤器的 SSRF4.2 具有基于白名…...

Git 的详细介绍及用法

一、Git 的优点 分布式版本控制 每个开发者都拥有完整的仓库副本,无需依赖中央服务器(如 SVN)。支持离线操作(提交、查看历史、创建分支等)。 高效的分支管理 创建和切换分支速度快(几乎是瞬间完成&#x…...

Ubuntu22.04安装数据

数据库安装步骤: sudo apt-get update sudo apt install mysql-server mysql-client sudo systemctl start mysql sudo systemctl status mysql (1)在命令行登录 MySQL 数据库,并使用 mysql 数据库 (必须使用这个…...

2025 ubuntu24系统宿主机上在线安装mysql数据库完整演示

说明:这是ubuntu24系统和安装后mysql的版本 rootmaster:/home/ubuntu# cat /etc/os-release PRETTY_NAME"Ubuntu 24.04.2 LTS" NAME"Ubuntu" VERSION_ID"24.04" VERSION"24.04.2 LTS (Noble Numbat)" VERSION_CODENAMEnob…...

STM32之I2C硬件外设

注意:硬件I2C的引脚是固定的 SDA和SCL都是复用到外部引脚。 SDA发送时数据寄存器的数据在数据移位寄存器空闲的状态下进入数据移位寄存器,此时会置状态寄存器的TXE为1,表示发送寄存器为空,然后往数据控制寄存器中一位一位的移送数…...

windows版本的时序数据库TDengine安装以及可视化工具

了解时序数据库TDengine,可以点击官方文档进行详细查阅 安装步骤 首先找到自己需要下载的版本,这边我暂时只写windows版本的安装 首先我们需要点开官网,找到发布历史,目前TDengine的windows版本只更新到3.0.7.1,我们…...

【AI】单台10卡4090 openEuler服务器离线部署kasm workspace 提供简单的GPU云服务 虚拟化桌面

下载网址 Downloads | Kasm Workspaces 文件连接 wget https://kasm-static-content.s3.amazonaws.com/kasm_release_plugin_images_amd64_1.16.1.98d6fa.tar.gz wget https://kasm-static-content.s3.amazonaws.com/kasm_release_1.16.1.98d6fa.tar.gz wget https://kasm-st…...

NetAssist 5.0.14网络助手基础使用及自动应答使用方案

以下是NetAssist v5.0.14自动应答功能的详细使用步骤: 一、基础准备: 工具下载网址页面:https://www.cmsoft.cn/resource/102.html 下载安装好后,根据需要可以创建多个server,双击程序图标运行即可,下面…...

《深度解析DeepSeek-M8:量子经典融合,重塑计算能效格局》

在科技飞速发展的今天,量子计算与经典算法的融合成为了前沿领域的焦点。DeepSeek-M8的“量子神经网络混合架构”,宛如一把钥匙,开启了经典算法与量子计算协同推理的全新大门,为诸多复杂问题的解决提供了前所未有的思路。 量子计算…...

力扣1251年

正确写法: select p.product_id, ifnull(round(sum(units*price)/sum(units),2),0) average_price from prices p left join unitssold u on u.product_idp.product_id and u.purchase_date between start_date and end_date group by p.product_id; 错误写法&a…...

【写作模板】JosieBook的写作模板

文章目录 ⭐前言⭐一、设计模式怎样解决设计问题?🌟1、寻找合适的对象✨(1)✨(2)✨(3) 🌟2、决定对象的粒度🌟3、指定对象接口🌟4、描述对象的实现🌟5、运用复用机制🌟6、关联运行时和编译时的结…...

47.HarmonyOS NEXT 登录模块开发教程(二):一键登录页面实现

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! HarmonyOS NEXT 登录模块开发教程(二):一键登录页面实现 文章目录 HarmonyOS NEXT 登录模块开发教程&#xff0…...