首页 > 解决方案 > “.gitignore”的问题

问题描述

我想从提交包中忽略一些特定文件,因此将它们包含在项目的“.gitignore”文件中:

MDK-ARM/test1_prj/
!MDK-ARM/test1_prj/*.hex
!MDK-ARM/test1_prj/*.axf
MDK-ARM/JLinkLog.txt

但不幸的是,最后一行不起作用,并且始终包含在提交中,无法解释原因。

另一个问题是如何忽略更改 .gitignore 本身(隐藏它们除外)

PS:简单地说我想排除除了结果文件之外的所有编译和调试垃圾。

标签: gitgitignore

解决方案


首先,确保该文件尚未被跟踪:

git rm --cached -- MDK-ARM/JLinkLog.txt

其次,如果一个文件夹被忽略,那么关于该文件夹内文件的所有其他规则都将无关紧要。
如果该文件的父目录被排除,则无法重新包含该文件

在将例外情况列入许可名单之前,您需要将文件而不是文件夹列入黑名单。

MDK-ARM/test1_prj/**
!MDK-ARM/test1_prj/**/
!MDK-ARM/test1_prj/*.hex
!MDK-ARM/test1_prj/*.axf

最后,检查这些规则是否适用于:

git check-ignore -v -- MDK-ARM/test1_prj/a_File_Which_Should_Be_Ignored

如果它被忽略,您将看到.gitignore涉及的文件及其忽略规则行号。


推荐阅读