创建 git 忽略文件 忽略 .obsidian 这个目录
创建 git 忽略文件
创建 Git 忽略文件(.gitignore)是保持代码仓库整洁、避免提交敏感信息或无用临时文件的关键步骤。
简单来说,.gitignore 就是一个文本文件,它告诉 Git 哪些文件或文件夹应该被"无视",不要纳入版本控制。
以下是创建和配置 .gitignore 的完整指南:
1. 如何创建 .gitignore 文件
你可以通过命令行或手动创建:
-
命令行方式(推荐):
在项目根目录下执行以下命令:bashtouch .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 "停止追踪"该文件,但保留本地文件不被删除。
操作步骤:
-
更新 .gitignore :确保你要忽略的文件已经写进了
.gitignore。 -
移除缓存 :运行以下命令(将
<文件名>替换为实际路径):bashgit rm --cached <文件名> # 例如:git rm --cached .env # 如果是文件夹,加上 -r: git rm -r --cached node_modules/注意:
--cached参数非常重要,它只从 Git 索引中移除,不会删除你电脑上的实际文件。 -
提交更改 :
bashgit 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文件。这里的规则不会被提交到仓库,只对当前环境生效。
💡 最佳实践建议
- 尽早创建 :在项目刚开始时就创建好
.gitignore,避免垃圾文件混入历史记录。 - 使用模板 :GitHub 官方维护了一个常用的
.gitignore模板库(github/gitignore),你可以直接搜索你的编程语言(如 Python, Java, Node)获取推荐的配置,无需手写。 - 定期审查 :随着项目开发,定期检查
.gitignore是否涵盖了新的构建产物或日志文件。
忽略 .obsidian 这个目录
要忽略 .obsidian 目录,你需要将其添加到项目根目录下的 .gitignore 文件中。
🎯 核心操作
-
编辑 .gitignore 文件
打开或创建你项目根目录下的.gitignore文件,并添加以下行:gitignore.obsidian/这行规则会告诉 Git 完全忽略整个
.obsidian文件夹及其内部的所有内容。
⚠️ 如果 .obsidian 已经被 Git 跟踪了怎么办?
如果你在添加忽略规则之前,已经将 .obsidian 目录提交到了 Git 仓库,那么仅仅修改 .gitignore 是无效的。Git 会继续追踪它的变化。
你需要先让 Git "停止追踪"这个目录,但保留它在本地不被删除。请按照以下步骤操作:
-
从 Git 缓存中移除
在项目根目录下执行以下命令:
bashgit rm -r --cached .obsidian--cached参数至关重要,它只从 Git 的索引中移除该目录,而不会删除你电脑上的实际文件。
-
提交更改
将这次"移除"操作和你的
.gitignore文件一起提交:bashgit 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 插件的敏感数据