创建 git 忽略文件 忽略 .obsidian 这个目录

创建 git 忽略文件 忽略 .obsidian 这个目录

创建 git 忽略文件

创建 Git 忽略文件(.gitignore)是保持代码仓库整洁、避免提交敏感信息或无用临时文件的关键步骤。

简单来说,.gitignore 就是一个文本文件,它告诉 Git 哪些文件或文件夹应该被"无视",不要纳入版本控制。

以下是创建和配置 .gitignore 的完整指南:

1. 如何创建 .gitignore 文件

你可以通过命令行或手动创建:

  • 命令行方式(推荐):
    在项目根目录下执行以下命令:

    bash 复制代码
    touch .gitignore
  • 手动方式:
    在项目的根目录新建一个文本文件,将其重命名为 .gitignore(注意前面有个点,且没有 .txt 后缀)。

2. 编写忽略规则

打开 .gitignore 文件,每一行代表一条规则。Git 会根据这些规则来匹配文件。

常用规则示例表
规则写法 含义 适用场景
*.log 忽略所有以 .log 结尾的文件 日志文件
node_modules/ 忽略名为 node_modules文件夹 依赖包目录
.env 忽略名为 .env具体文件 环境变量/敏感配置
build/ 忽略当前目录下的 build 文件夹 编译输出目录
!important.log 不忽略 important.log (取反) 例外情况
/TODO.txt 仅忽略根目录下的 TODO.txt 特定路径文件

符号说明:

  • # :注释,用于说明规则。
  • * :通配符,匹配任意字符(不含路径分隔符)。
  • ! :取反,表示"不要忽略"。
  • / :放在末尾表示目录,放在开头表示仅匹配根目录。

3. 关键步骤:处理"已经被跟踪"的文件

这是新手最容易遇到的问题:如果你已经把某个文件(比如密码配置文件)提交到了 Git,后来才把它加到 .gitignore 里,Git 仍然会继续追踪它的变化。

你需要先让 Git "停止追踪"该文件,但保留本地文件不被删除。

操作步骤:

  1. 更新 .gitignore :确保你要忽略的文件已经写进了 .gitignore

  2. 移除缓存 :运行以下命令(将 <文件名> 替换为实际路径):

    bash 复制代码
    git rm --cached <文件名>
    # 例如:git rm --cached .env
    # 如果是文件夹,加上 -r: git rm -r --cached node_modules/

    注意:--cached 参数非常重要,它只从 Git 索引中移除,不会删除你电脑上的实际文件。

  3. 提交更改

    bash 复制代码
    git add .gitignore
    git commit -m "停止追踪并忽略指定文件"

4. 进阶技巧与替代方案

除了项目级的 .gitignore,还有其他两种忽略方式:

  • 全局忽略 (~/.gitignore_global)

    如果你希望在所有 Git 项目中都忽略某些文件(例如 macOS 的 .DS_Store 或编辑器的临时文件),可以配置全局忽略。

    • 配置命令:git config --global core.excludesfile ~/.gitignore_global
    • 然后创建一个全局文件并在其中添加规则。
  • 本地私有忽略 (.git/info/exclude)

    如果你不想把忽略规则分享给队友(例如你自己生成的临时构建文件),可以直接编辑项目内 .git/info/exclude 文件。这里的规则不会被提交到仓库,只对当前环境生效。

💡 最佳实践建议

  1. 尽早创建 :在项目刚开始时就创建好 .gitignore,避免垃圾文件混入历史记录。
  2. 使用模板 :GitHub 官方维护了一个常用的 .gitignore 模板库(github/gitignore),你可以直接搜索你的编程语言(如 Python, Java, Node)获取推荐的配置,无需手写。
  3. 定期审查 :随着项目开发,定期检查 .gitignore 是否涵盖了新的构建产物或日志文件。

忽略 .obsidian 这个目录

要忽略 .obsidian 目录,你需要将其添加到项目根目录下的 .gitignore 文件中。

🎯 核心操作

  1. 编辑 .gitignore 文件
    打开或创建你项目根目录下的 .gitignore 文件,并添加以下行:

    gitignore 复制代码
    .obsidian/

    这行规则会告诉 Git 完全忽略整个 .obsidian 文件夹及其内部的所有内容。


⚠️ 如果 .obsidian 已经被 Git 跟踪了怎么办?

如果你在添加忽略规则之前,已经将 .obsidian 目录提交到了 Git 仓库,那么仅仅修改 .gitignore 是无效的。Git 会继续追踪它的变化。

你需要先让 Git "停止追踪"这个目录,但保留它在本地不被删除。请按照以下步骤操作:

  1. 从 Git 缓存中移除

    在项目根目录下执行以下命令:

    bash 复制代码
    git rm -r --cached .obsidian
    • --cached 参数至关重要,它只从 Git 的索引中移除该目录,而不会删除你电脑上的实际文件。
  2. 提交更改

    将这次"移除"操作和你的 .gitignore 文件一起提交:

    bash 复制代码
    git add .gitignore
    git commit -m "停止追踪 .obsidian 目录"

完成以上步骤后,.obsidian 目录就会被从远程仓库中删除,并且未来你对它的任何修改都不会再被 Git 检测到。

💡 Obsidian 用户的高级建议

对于 Obsidian 用户,通常有两种忽略策略:

  • 策略一:完全忽略 (推荐用于个人独立配置)

    如果你的插件、主题等配置在不同设备上是独立的,不需要同步,那么直接忽略整个目录是最简单的方法。

    gitignore 复制代码
    # 忽略整个 .obsidian 配置目录
    .obsidian/
  • 策略二:选择性忽略 (推荐用于多设备同步)

    如果你希望在不同设备间同步部分配置(如主题、插件),但忽略特定于当前设备的文件(如窗口布局、缓存),则可以更精细地控制。通常在 .obsidian 目录内创建一个 .gitignore 文件,或在项目根目录的 .gitignore 中指定具体路径。

    gitignore 复制代码
    # 忽略特定的内部文件和子目录
    .obsidian/workspace.json      # 工作区布局,因设备而异
    .obsidian/workspace-mobile.json
    .obsidian/cache/              # 缓存文件
    .obsidian/plugins/obsidian-git/data.json # Git 插件的敏感数据
相关推荐
studytosky2 小时前
【高并发内存池】线程缓存核心原理与实现
linux·服务器·git·缓存
aq55356002 小时前
Laravel7.x十大革新特性详解
大数据·elasticsearch·mfc
咕咕嘎嘎10242 小时前
问卷系统测试报告
git
aq55356002 小时前
Laravel8.x新特性全解析
c++·elasticsearch·mfc
我星期八休息2 小时前
Linux 进程核心原理全解:从冯诺依曼体系到进程控制全链路深度剖析
大数据·linux·服务器·开发语言·数据结构·c++·散列表
maxchen.cn2 小时前
实时交互数字人解决方案深度剖析:以臻灵平台为例的商业价值与竞争力评估
大数据·人工智能
黎阳之光3 小时前
视频孪生赋能智慧能源园区:黎阳之光打造全域数智化新标杆
大数据·人工智能·算法·安全·数字孪生
一品威客爱开发3 小时前
APP 二期开发运营联动技巧 灵活用工平台开发成本测算
大数据