I think any exclusion should be only in .SyncIgnore file, btsync should not have any built-in exclusion. The main reason can be seen on this message thread ... some people want to exclude .git, and other don't. For me, it is ok to sync the .git , especially in "read-only" mode .. as a backup. I would not try to really "sync" .git on 2 machines and using git on the 2 differents machines at the same time ... I already had trouble with btsync with 3 peers A,B,C. But I agree that by default, the .git, .svn, and so on .. should be in .SyncIgnore file by default. Then it is up to the user to "un-ignore" them. Now right now, I would LOVE to know how to ignore any ".git" from any sub folders as user "sts" asked. I hope we don't have to put a .SyncIgnore in the parent of all the .git folder. So if any one can explain how to achieve that, I would really really appreciate. Something that work on first sync import, but also if I add a new .git later.