Here is my approach. I have several computers (home desktop, office desktop, various laptops), all running a recent version of Ubuntu Linux. The home directories of each of these contain several directories (bin, Desktop, lib, …) which are specific to the local machine and are not synced to google drive. But the rest of the home directory is synced between all machines as follows. Each home directory contains a directory Insync/gdrive. This is my Insync folder on each of the machines, so when anything in this directory is changed on any of my machines, the change is propagated by Insync to google drive and from there back to all the other machines. (On all machines I have “Sync new children of partially-synced folders automatically” set and “Sync new top-level cloud items automatically” unset).
Inside Insync/gdrive I have a directory called home and inside that a bunch of subdirectories (programs, images, …) which is where the main contents of my home directory reside. To make it easier to access these I have symlinks
~/programs -> Insync/gdrive/home/programs
~/images -> Insync/gdrive/home/images
etc.
This works nearly perfectly for my needs. The one thing that does not work is symlinks inside the directory Insync/gdrive/home. If I create or delete a symlink on one machine, I have to manually create it on all the other machines.