是否可以通过嗅探gitigonre二进制文件?不幸的是,我有一个Zend Encoded PHP文件。 Git说它们是二进制文件。但我也有没有编码的PHP文件。是否有可能只对二进制PHP文件进行gitignore?
答案 0 :(得分:2)
是否可以通过嗅探gitigonre二进制文件
不直接,没有。
Git的忽略规则就像Git中的太多东西一样复杂;但有两个部分很简单:
永远不会忽略任何跟踪的文件。 Git将未跟踪的文件定义为工作树中但不在索引中的文件,因此跟踪文件是一个文件,在索引中。 (如果它在索引中而不在工作树中,它会被跟踪但也会被删除。当然,这也要求我们定义索引和工作树是的,但是对于这个答案,我将在这里保留未定义的内容。)
对于每个未跟踪的文件,Git可以抱怨它:
Untracked files:
(use "git add <file>..." to include in what will be committed)
foo.ext
或者,当然,不要抱怨它;然后git add .
可以添加它,或者当然不添加它。请注意,一旦添加,该文件现在跟踪并且忽略条目不会影响它,直到它再次未跟踪(通过从索引中删除文件 - 索引的状态来实现不是常数和永久性的,但 是复杂的,并且删除(a)被跟踪和(b)已被提交的内容会产生后果。
这是由.gitignore
条目控制的第二个项目:Git会抱怨这些文件,并git add .
添加它们以便跟踪它们吗?要了解相关信息,Git会阅读.gitignore
个文件(以及.git/info/exclude
和$HOME/.config/git/ignore
- 有关其他详细信息,请参阅the gitignore documentation。
.gitignore
中的条目是文件名,文件路径和/或glob patterns的列表,如*.ext
。这些只查看文件的名称,而不是内容。
您可以根据文件内容编写一个编写.gitignore
文件的程序,这就是我的意思不直接上面:您将运行您的程序,它会更新任何适当的{ {1}}文件忽略当前未跟踪但未被忽略且导致投诉的其他文件。