Hmm... I'm not sure if I entirely agree with this approach.   I do see your argument for this as encapsulating git-parser as a pure collection of functions that parses git command output.  However, if file type check is not here that means there has to be separate loop at outside for checking each and individual file types in files list of status rather than piggy back off of existing file loop within parser.  It is a very small minor performance upgrade and in fact code will be O(n) from performance analysis point of view.  

I guess I'm a rebel who tend to break laws to shave off some millie seconds...  :P