I\'ve read a few git questions here, but could not find an answer to this one:
I have a public and a private branches where I want to allow certain files to diverge.
Keep passwords under version control is the worst idea ever. You need CVS, not git, to work with separate files. Git as many other modern DVCS working with the entire tree, not with separate files.