使用.gitignore忽略文件或者文件夹及其失效解决方法

git如果需要忽略某个文件夹,可以在初始化之后,在仓库根目录下创建一个.gitignore文件,添加需要忽略的文件和文件夹即可。
我们也不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore
例如排除Windows自动生成的垃圾文件和仓库的APP1子文件夹:

# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
#Directories
APP1/

如果已经提交过的文件或者文件夹怎么办?此时更改.gitignore文件对已经提交的文件是无效的。
2.1 首先,编辑.gitignore文件。
2.2 然后如果是单个文件,可以使用如下命令从仓库中删除:
git rm --cached logs/xx.log
如果是整个目录:
git rm --cached -r logs
如果文件很多,那么直接
git rm --cached -r .
如果提示某个文件无法忽略,可以添加-f参数强制忽略。
git rm -f --cached logs/xx.log
2.3 然后
git add .
git commit -m "Update .gitignore"

把被忽略的某个文件强制添加回去:
git add -f filename

ignore规则检查:
git check-ignore

一些规则
a# 忽略所有 .a 结尾的文件
!lib.a# 但lib.a 除外
/TODO# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/# 忽略build/ 目录下的所有文件
doc/.txt# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

 

查看所有已被忽略的文件和目录

git clean -ndx

posted on 2022-02-25 15:46  静以修身俭以养德  阅读(5553)  评论(0编辑  收藏  举报

导航