Note: Settings Sync is still in Preview and only available on VS Code Insiders.
You can turn on Settings Sync using the Turn On Preferences Sync... entry in the Manage gear menu at the bottom of the Activity Bar.

You will be asked to sign in and what preferences you would like to sync; currently Settings, Keyboard Shortcuts, Extensions, User Snippets, and UI State are supported.

Selecting the Sign in & Turn on button will ask you to choose between signing in with your Microsoft or GitHub account.

After making this selection, the browser will open so that you can sign in to your Microsoft or GitHub account. When a Microsoft account is chosen, you can use either personal accounts, such as Outlook accounts, or Azure accounts, and you can also link a GitHub account to a new or existing Microsoft account.
After signing in, Settings Sync will be turned on and continue to synchronize your preferences automatically in the background.
Machine settings (with machine or machine-overridable scopes) are not synchronized by default, since their values are specific to a given machine. You can also add or remove settings you want to this list from the Settings editor or using the setting sync.ignoredSettings.

Keyboard Shortcuts are synchronized per platform by default. If your keyboard shortcuts are platform-agnostic, you can synchronize them across platforms by disabling the setting sync.keybindingsPerPlatform.
All built-in and installed extensions are synchronized along with their global enablement state. You can skip synchronizing an extension, either from the Extensions view (⇧⌘X (Windows, Linux Ctrl+Shift+X)) or using the setting sync.ignoredExtensions.

Following UI State is synchronized currently:
You can always change what is synced via the Preferences Sync: Configure command or by opening the Manage gear menu, selecting Preferences Sync is On, and then Preferences Sync: Configure.
When synchronizing settings between multiple machines, there may occasionally be conflicts. Conflicts can happen when first setting up sync between machines or when settings change while a machine is offline. When conflicts occur, you will be presented with the following options:
If at any time you want to sync your data to a different account, you can turn off and turn on Settings Sync again with different account.
VS Code always stores local and remote backups of your preferences while syncing and provides views for accessing these. In case something goes wrong, you can restore your data from these views.

You can open these views using Preferences Sync: Show Synced Data command from the Command Palette. The Local Sync activity view is hidden by default and you can enable it using Views submenu under Preferences Sync view overflow actions.

Local backups folder in the disk can be accessed via the Preferences Sync: Open Local Backups Folder command. The folder is organized by the type of preference and contains versions of your JSON files, named with a timestamp of when the backup occurred. These backups are automatically deleted after 30 days.
VS Code keeps track of the machines synchronizing your preferences and provides a view to access them. Every machine is given a default name based on the type of VS Code (Insiders or Stable) and the platform it is on. You can always update the machine name using the edit action available on the machine entry in the view. You can also disable sync on another machine using Turn off Preferences Sync context menu action on the machine entry in the view.

You can open this view using Preferences Sync: Show Synced Data command from the Command Palette.
Settings Sync activity can be monitored in the Log (Preferences Sync) output view. If you experience a problem with Settings Sync, please include this log when creating the issue. If your problem is related to authentication, also include the log from the Account output view.
If you want to remove all your data from our servers, just turn off sync via Preferences Sync is On menu available under Manage gear menu and select the checkbox to clear all cloud data. If you choose to re-enable sync, it will be as if you're signing in for the first time.
Settings Sync persists authentication information to the system keychain. Writing to the keychain can fail in some cases if the keychain is misconfigured.
If the keychain throws the error "The user name or passphrase you entered is not correct.", open the Keychain Access app, right-click on the login keychain, and lock and unlock it again. This error was first reported in issue #76 as a problem after upgrading to macOS High Sierra, but it has also been reported on more recent macOS versions.
If the keychain throws the error "No such interface "org.freedesktop.Secret.Collection" on object at path /org/freedesktop/secrets/collection/login", try following the steps described in issue #92972 to create a new keyring.