如何使用Gitignore二进制文件?

时间:2018-03-16 11:11:15

标签: php git gitignore

是否可以通过嗅探gitigonre二进制文件?不幸的是,我有一个Zend Encoded PHP文件。 Git说它们是二进制文件。但我也有没有编码的PHP文件。是否有可能只对二进制PHP文件进行gitignore?binary PHP file

1 个答案:

答案 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}}文件忽略当前未跟踪但未被忽略且导致投诉的其他文件。