I use scp to backup the folders I'm interested in. I use git to manage sharing data between machines. (Again, just the stuff I'm interested in.)
I don't keep 100% synchronisation between machines. I don't back everything up. I'm happy working at this level of granularity because it allows me to stay selective and not accumulate cruft due to relying on an automated backup of my entire drive. (In my case, backing everything up would result in a lot of useless noise.)
I'm not saying it's for everyone, but it works for me.