如何通过.gitignore递归忽略Emacs备份文件
解决Git递归忽略Emacs备份文件的问题
别担心,这个问题其实很好解决——你之前写的*~本身就应该是递归生效的,可能是某些细节没注意到导致的。咱们一步步来梳理:
正确的.gitignore配置
直接在仓库根目录的.gitignore文件里添加这一行就够了:
*~
Gitignore的规则里,不带路径前缀的*~模式会自动递归应用到仓库的所有子目录中,不管备份文件在哪个层级都会被忽略。你之前觉得它只生效在根目录,大概率是后续的细节没处理到位。
如果子目录的备份文件还是没被忽略?
如果发现子目录里的*~文件依然出现在git status的变更列表里,那基本是因为这些文件在你添加.gitignore规则之前就已经被Git追踪过了。这时候需要先把它们从Git的追踪列表中移除:
git rm --cached **/*~
**/*~:递归匹配所有子目录下以~结尾的文件--cached:只移除Git的追踪记录,不会删除你本地的备份文件
执行完这个命令后,提交这个变更:
git commit -m "不再追踪Emacs备份文件"
之后Git就会彻底忽略整个仓库里所有目录下的Emacs备份文件了。
最后再确认下你的.gitignore是放在仓库根目录,而不是某个子文件夹里,这样它的规则才能覆盖整个仓库哦。
内容的提问来源于stack exchange,提问作者Doerad
相关产品推荐
相关产品推荐

