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

news2025/3/13 16:46:46

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

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博客 

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

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

相关文章

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

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

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

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

【科研绘图系列】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 前进/后…

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

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

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

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

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,双击程序图标运行即可,下面…

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

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

5.1 程序调试

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 本节中为了演示方便,使用的代码如下: 【例 5.1】【项目:code5-001】程序的调试。 static void Ma…

Cursor初体验:excel转成CANoe的vsysvar文件

今天公司大佬先锋们给培训了cursor的使用,还给注册了官方账号!跃跃欲试,但是测试任务好重,结合第三方工具开发也是没有头绪。 但巧的是,刚好下午有同事有个需求,想要把一个几千行的excel转成canoe的系统变…

vue3-element-admin 前后端本地启动联调

一、后端环境准备 1.1、下载地址 gitee 下载地址 1.2、环境要求 JDK 17 1.3、项目启动 克隆项目 git clone https://gitee.com/youlaiorg/youlai-boot.git数据库初始化 执行 youlai_boot.sql 脚本完成数据库创建、表结构和基础数据的初始化。 修改配置 application-dev.y…

《MySQL数据库从零搭建到高效管理|库的基本操作》

目录 一、数据库的操作 1.1 展示数据库 1.2 创建数据库 1.3 使用数据库 1.4 查看当前数据库 1.5 删除数据库 1.6 小结 二、常用数据类型 2.1 数值类型 2.2 字符串类型 2.3 日期类型 一、数据库的操作 打开MySQL命令行客户端,安装完MySQL后会有两个客户端…