我有一个.gitattributes 清洁过滤器,可以在提交之前从文件中删除所有注释。
现在我对“test”进行了修改并添加了注释:
突然间,文件“test”不再被标记为已修改,并且它也不出现在git索引中。这是为什么?
$ cat .git/config
[filter "cleancomments"]
clean = "grep -v '^#'"
$ cat .gitattributes
* filter=cleancomments
我有一个名为“test”的文件,其内容如下(已提交到代码库):
This is a file with random content
现在我对“test”进行了修改并添加了注释:
This is a file with random content
# and some comments
# like this
git status
现在告诉我:
modified: test
但是git diff
为空(这是应该的)。
对我来说不是很清楚为什么git status不使用过滤器来决定文件是否被修改,但我想这就是它的实现方式。
真正让我感到神秘的是以下内容:
如果我这样做:
git add test
突然间,文件“test”不再被标记为已修改,并且它也不出现在git索引中。这是为什么?