Git配置.gitignore:仅保留顶级点文件与指定子目录
解决~/作为Git根目录时的.gitignore配置问题
我懂你现在的头疼点——把用户根目录当Git仓库,只想保留顶级点文件和.vim/bundle,但之前的配置死活搞不定bundle目录对吧?
问题出在你的规则没处理好目录层级的忽略逻辑:当你用*忽略所有内容后,虽然!/.*把顶级点目录(比如.vim)拉回来了,但.vim内部的内容默认还是会被忽略,而且你原来的!/.vim/bundle/*只盯着bundle里的文件,却没先确保bundle目录本身被Git认可。
给你一套能直接用的配置,每一行我都给你掰扯清楚:
# 第一步:先把根目录下所有内容都忽略掉,这是基础规则 * # 第二步:保留所有顶级点文件/目录(用??避免匹配.和..这两个特殊目录) !/.??* # 第三步:忽略.vim目录下的所有内容,只留我们需要的bundle /.vim/* # 必须先让Git不忽略bundle目录本身,不然里面的内容再怎么加!也没用 !/.vim/bundle/ # 最后把bundle下所有层级的文件和子目录都纳入管理 !/.vim/bundle/**
写完配置后,你可以用git add -n .做个测试——这个命令会模拟添加操作,告诉你哪些文件会被Git追踪,方便你验证配置是否符合预期。
内容的提问来源于stack exchange,提问作者Mussé Redi
相关产品推荐
相关产品推荐

