I'm assuming you mean the commit log when you refer to changes, in which case you cannot do what you require without a custom git client or at least a custom git commit viewer script.
A single repository should in theory only ever contain one project. Otherwise you are using git "wrong" (using the word "wrong" in a very loose sense as git is just a tool, using it wrong is impossible, there's just using it badly for your own requirements).
The only way to do what you want is to split the bar1 and bar2 folders into separate git repo's. If they are a bit like modules, which are both required on the same site, you could git init/clone into the bar1 and bar2 folders respectively for each project so you can control them separately.
Another alternative would be to separate them out into separate git repo's, then create a third "master" repo which just includes the two other repo's as sub-modules inside their respective folders. Then use a custom git hook as you probably already do, to make the master pull and build the correct folder/project/bar(x) . However this is a bit of a hacky way of doing things purely for the sake of not having to set up a few folders first.
Basically put, you can't split out the commit log based on the folder, without writing your own custom commit viewer. You need to separate the project into multiple repo's. How you then bring them back to together and automate any build tasks, is up to you. There's no doubt more ways that the ones i mention above. Just a case of finding the best solution for your needs.