在修改.gitignore 文件后不生效

问题背景

在我的 Obsidian 笔记中,有一个配置文件夹 .obsidian ,在我对 Obsidian 进行展开/收缩侧边栏、安装插件时这个文件都会发生变化,想通过 .gitignore 文件来忽略对 .obsidian 文件夹的变更。

问题描述

在使用 .gitignore 文件后,.obsidian 文件夹的变更还是出现在 Git 的本地变更列表当中。

问题分析

  1. 是否是 .gitignore 文件中表示忽略文件夹的语法写错了

解决方法

经过上网冲浪后发现,.gitignore 文件只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore 文件是无效的。

换句话说,也就是 .gitignore 文件只能管理那些还没有被 commit 过的文件,如果你想忽略的文件或者文件夹是已经被推送到本地暂存区或者远程仓库的话,单单修改 .gitignore 文件是不管用的。

解决方法是先把本地缓存删除掉,将已经被 commit 过的文件修改为未被追踪状态,然后再提交,这样就不会出现忽略文件还出现在本地变更列表当中了。

删除本地缓存命令语法格式:

1
2
3
4
git rm --cached 文件

## 删除本地缓存之后,需要commit一次
git commit -m "Stopped tracking file"

如果只是删除单个文件或者多个文件的本地缓存:

1
git rm --cached Home.md Readme.md

删除整个文件夹的本地缓存

1
git rm --cached .obsidian/

在删除本地缓存之后再 commit 一次,这样就可以修改忽略文件,而不会受到 git 的跟踪了。


在修改.gitignore 文件后不生效
https://sunshinechen.cn/2022/10/25/在修改.gitignore文件后不生效/
作者
sunshine
发布于
2022年10月25日
许可协议