Git 中 git update-index --skip-worktree与 .gitignore 的使用与区别

目录

在日常开发中,我们经常会遇到这样的问题:

  • 本地编译 / 测试会生成大量 build 产物
  • 这些文件不希望被提交
  • 但其中一部分文件已经被 Git 跟踪过
  • 同时又希望 本地修改不影响仓库状态

本文结合实际工程经验,总结 git update-index --skip-worktree.gitignore 的适用场景、用法以及常见误区

git update-index --skip-worktree

适用对象:已经被 Git 跟踪(tracked)的文件
该命令的作用是:让 Git 在本地忽略某些已跟踪文件的改动,但不改变仓库历史,也不影响他人。

在这里插入图片描述

1. 单个文件

git update-index --skip-worktree <file>

恢复跟踪:

git update-index --no-skip-worktree <file>

2. 某目录下多个文件

git ls-files <target-dictionary>|xargsgit update-index --skip-worktree 
在这里插入图片描述


多个文件错误写法:

在这里插入图片描述
  • ** 不是 Git 语法是否展开取决于 shell,git update-index 不会递归处理目录
  • 必须先通过 git ls-files 列出已跟踪文件
  • 再逐个设置 skip-worktree 标志

恢复跟踪:

git ls-files <target-dictionary>|xargsgit update-index --no-skip-worktree 

3. 验证哪些文件被 skip

git ls-files -v |grep'^S'

.gitignore

适用对象:从未被 Git 跟踪(untracked)的文件
.gitignore 本质是** 一个配置文件,而不是 Git 命令。**

方式一:命令行追加

echo"xys/doc/">> .gitignore gitadd .gitignore git commit -m "chore: ignore generated docs"

方式二:手动编辑.gitignore

直接编辑文件,添加规则后再提交

方式三:使用GitLens插件

  • 优点

可视化操作,对单个文件忽略比较方便

  • 缺点

遇到同一目录下有多个文件需要ignore,或者某个文目录(及其子目录)下某个特定类型文件需要ignore,.gitignore 容易变得冗长、零散。
使用方式一或方式二直接编辑.ignore文件更简洁,例如

/verif/*/vip_tmp/ xys/doc/ xys/reference/build/obj/**/*.o 
在这里插入图片描述


除了gitignore还支持很多git操作可视化,可以自行探索

Read more

Flutter 组件 dart_ytmusic_api 的鸿蒙化适配实战 - 驾驭极致音频流中枢大坝、实现 OpenHarmony 终端高性能音乐检索、流媒体封装与工业级内容聚合核方案

Flutter 组件 dart_ytmusic_api 的鸿蒙化适配实战 - 驾驭极致音频流中枢大坝、实现 OpenHarmony 终端高性能音乐检索、流媒体封装与工业级内容聚合核方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 dart_ytmusic_api 的鸿蒙化适配实战 - 驾驭极致音频流中枢大坝、实现 OpenHarmony 终端高性能音乐检索、流媒体封装与工业级内容聚合核方案 前言 在鸿蒙(OpenHarmony)生态的分布式影音中枢、全场景音频播控或者是对内容聚合效率有极其严苛要求的 0308 批次流媒体应用中。“内容请求的秒级解析与海量音频元数据的指纹预检维度”是衡量整个内容分发系统稳定性的最终质量门禁。面对包含数百万首歌曲的庞大曲库、动态变化的加密请求签名、甚至是由于跨域限制产生的 0308 批次 API 握手波次。如果仅仅依靠简单的“字符串爬取”或者是干瘪的 HTTP 裸请求。不仅会导致在处理海量搜索结果时让系统如同在逻辑废墟中盲人摸象。更会因为请求字段缺失,令用户在进行快速选曲时瞬间陷入列表无响应盲区。 我们需要一种“逻辑严密、协议归纳”的内容抓取艺术。 dart_ytmusic_api 是一套专注于无缝整合全球公认音频巨头 YT

By Ne0inhk
Linux 进程间通信之命名管道(FIFO):跨进程通信的实用方案

Linux 进程间通信之命名管道(FIFO):跨进程通信的实用方案

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 命名管道核心概念:什么是 FIFO? * 1.1 命名管道的定义 * 1.2 命名管道的核心特性 * 1.3 命名管道和匿名管道的区别与联系 * 二. 命名管道的创建方式 * 2.1 命令行创建(mkfifo 命令) * 2.2 代码创建(mkfifo 函数) * 三. 命名管道的打开规则(关键!) * 四. 命名管道实战案例 * 4.1 案例 1:命名管道实现文件拷贝 * 4.1.

By Ne0inhk
Flutter 组件 flutter_sheet_localization 的适配 鸿蒙Harmony 实战 - 驾驭云端词典自动化、实现鸿蒙端国际化词条无感更新与多语言 Key 生成方案

Flutter 组件 flutter_sheet_localization 的适配 鸿蒙Harmony 实战 - 驾驭云端词典自动化、实现鸿蒙端国际化词条无感更新与多语言 Key 生成方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 flutter_sheet_localization 的适配 鸿蒙Harmony 实战 - 驾驭云端词典自动化、实现鸿蒙端国际化词条无感更新与多语言 Key 生成方案 前言 在鸿蒙(OpenHarmony)生态的全球化应用开发中,面对上百个涉及金融支付、法律协议以及动态营销文案的多语言(i18n)词条映射。如果仅仅依靠传统的本地 intl 方案 手动修改 .arb 或 .json 文件。那么不仅会导致开发与翻译团队之间的“沟通断层”。更会因为频繁的手动拷贝错误引发严重的生产事故。 我们需要一种“云端协同、本地免维护”的翻译生产艺术。 flutter_sheet_localization 是一套专注于将 Google Sheets(或是兼容的 CSV 系统)

By Ne0inhk
Flutter 组件 cool_linter 适配鸿蒙 HarmonyOS 实战:静态代码治理,构建极致规范的代码质量红线与防腐架构

Flutter 组件 cool_linter 适配鸿蒙 HarmonyOS 实战:静态代码治理,构建极致规范的代码质量红线与防腐架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 cool_linter 适配鸿蒙 HarmonyOS 实战:静态代码治理,构建极致规范的代码质量红线与防腐架构 前言 在鸿蒙(OpenHarmony)生态迈向大规模协作、涉及超大规模代码仓治理及高性能基座重构的背景下,如何确保每一行代码都符合严苛的性能准则与安全规范,已成为决定系统长期稳定性的“架构防火墙”。在鸿蒙设备这类强调 AOT 极致优化与内存足迹(Memory Footprint)管控的环境下,如果团队代码依然充斥着魔法数字(Magic Numbers)、过度嵌套的逻辑块或泛滥的 dynamic 调用,由于由于静态分析缺失,极易由于由于“隐性技术债”导致线上环境不可预知的性能崩塌或内存泄漏。 我们需要一种能够深度定制规则、支持循环复杂度分析且具备“强类型纠偏”能力的静态检测方案。 cool_linter 为 Flutter 开发者引入了超越原生 Linter 的严苛检测范式。它利用高级分析插件机制,

By Ne0inhk