Google Drive sync on a Mac: mirror the folder or stream it

Nearly every complaint about Google Drive sync on a Mac traces back to a single setting chosen once during setup and rarely revisited. Drive for desktop can either stream files or mirror them, and the choice determines whether the files are really on the disk, whether they open without a connection, whether a backup captures them, and whether a shell command can walk the tree without downloading gigabytes.

The two modes are not presented as a major decision during installation, which is why so many people end up on the wrong side of it. Repeated re-syncing, files that will not open on a plane, and a startup disk that filled up overnight are all symptoms of a mode mismatch rather than separate faults.

What the two modes actually do

Google's documentation defines them briefly and precisely. In streaming mode, "files are primarily stored in the cloud, but will be made available offline when accessed," and on a Mac those "files are located on a virtual Drive on your computer." In mirroring mode, "mirrored files will always be stored on your computer and in the cloud. They are always available offline," and they "are located in a folder on your computer."

Two words in there carry most of the weight. In streaming mode the files are made available offline when accessed, meaning after they have been opened once, not in advance. And in mirroring mode they are always stored locally, meaning the whole of My Drive occupies disk space whether it is touched or not.

Google draws the offline distinction explicitly: mirrored files are "available offline and online," while streamed files are "only available online unless specifically made available offline through Drive for desktop." Streaming therefore requires a deliberate action per file or folder for anything that must survive a lost connection.

The constraint that removes the choice

The mode cannot be applied uniformly, and this is the part most guides omit. Google states the rule in three parts. "My Drive can be streamed or mirrored." Then: "Local folders or your desktop can only be mirrored." And: "Shared Drives can only be streamed."

For anyone in an organization that uses shared drives, that settles it. Shared drives stream, always, with no mirroring option, so a Mac that touches shared drives is running streaming for at least part of its content regardless of what is chosen for My Drive. Setting My Drive to mirror while shared drives stream is legitimate, but it produces two sets of behaviour under one application, and confusion about which set applies is a frequent source of "sometimes it works offline and sometimes it does not."

Backing up a local folder to Drive runs the other direction and is mirroring by definition, since the authoritative copy starts on the Mac.

Stream and mirror side by side

Stream Mirror
Disk used Almost none until a file is opened The full size of My Drive
Offline access Only for files marked available offline Everything, always
Works for My Drive Yes Yes
Works for shared drives Yes No
Works for a local folder or Desktop No Yes
Where files sit on a Mac A virtual drive A folder on the disk
Suits Large libraries, small disks, shared drives Small libraries, offline work, local tooling

The honest summary is that streaming suits a Drive larger than the disk and mirroring suits work that has to continue without a connection. A 2TB Drive cannot be mirrored onto a 512GB Mac at all, and a Drive comfortably smaller than the free space has little to gain from streaming.

Storage size is therefore worth checking before the mode is chosen. A Google account comes with 15GB shared across Photos, Drive and Gmail, and the paid tiers begin at 100GB and run to several terabytes. A Drive near the top of those tiers is a streaming candidate by arithmetic alone.

Where the files land on the disk

In streaming mode on current macOS, Drive for desktop uses the system's File Provider mechanism rather than creating an ordinary folder. Google's administrator documentation gives the path: on macOS, files are at /Users/<Local Username>/Library/CloudStorage/<Workspace Email Address>, and notes this location can be configured differently. Inside it are My Drive and Shared drives as separate entries.

Two practical consequences follow. ~/Library is hidden in Finder by default, which is why the tree can feel unreachable even though the Finder sidebar entry works, and any script or project file that stored an older path no longer resolves. The Finder sidebar entry is a shortcut to that location, not a folder in the home directory.

In mirroring mode the files are in a normal folder, at a location chosen during setup, and behave like any other directory on the disk. That is the whole appeal of the mode for anyone whose tooling reads paths from a configuration file.

Switching modes without losing anything

Google's instructions are specific about the order, and following them out of sequence is what produces a duplicate copy.

To move from mirroring to streaming: select the streaming option in preferences, close the application, and only then delete the mirrored folder. Deleting the folder first, while the application is still running, risks the deletion being interpreted as an intentional removal.

To move from streaming to mirroring: select mirroring in preferences, at which point "My Drive files download to the folder you select." The download is the full size of My Drive, so it needs both the free space and the time, and starting it on a metered connection is a decision rather than an accident.

Nothing is deleted from Drive by either switch. The cloud copy is unaffected, which is what makes the change reversible. What does change is the path, so anything pointing at the old location needs updating either way.

What each mode does to command-line work

This is where the choice bites hardest, and where the documentation stops being helpful because it is not written for the case.

A streamed tree is full of files whose contents are not local. Anything that reads every file, a recursive grep, a checksum pass, a build that globs a directory, an indexing tool, triggers a download for each one. The command is not wrong, it is just now a bulk transfer, and on a large Drive it can fill the startup disk and saturate the connection before finishing. Restricting such commands to a subtree marked available offline avoids it.

A mirrored tree behaves like an ordinary folder for reading, and presents a different problem for writing. Build output, dependency directories and virtual environments contain thousands of small files that change constantly, and every change is uploaded. The sync becomes permanently busy, the version history fills with noise, and nothing of value is being preserved. Those directories belong outside the synced folder, or behind whatever ignore mechanism the toolchain offers.

Git repositories deserve a specific warning in both modes. A repository inside a synced tree has its .git directory synced file by file, and a sync engine has no concept of a commit, so an interrupted sync can leave the repository in a state neither Git nor Drive can explain. Keeping repositories outside the synced tree and using a Git host for the remote copy is the arrangement that does not produce surprises. Having the folder tree and the shell in one window makes it much easier to see which directories are inside the synced tree before a command runs, and the comparison with other file managers covers which tools keep both in view. Where the same files have to be reachable away from the desk, continuing on an iPhone or iPad is the other half of the arrangement.

What a backup captures in each mode

The mode decides whether a Mac backup contains the data or only the names, and this is the consequence with the longest tail.

A backup tool copies what is on the disk. In mirroring mode that is the files themselves, so a Time Machine snapshot or a clone contains a real, independent second copy. In streaming mode, Google's own definition says files "are primarily stored in the cloud," so anything not yet downloaded has no contents locally for a backup tool to read. The backup records that the file exists. It does not record what is in it.

That is not a defect in either Drive or the backup tool, but it does mean streaming and a local backup do not combine into two copies the way people assume. A streamed Drive plus Time Machine is one copy of the data, held by Google, plus a list of filenames.

The resolution depends on what the second copy is for. If the concern is a failed disk, the cloud copy already covers it and no further action is needed. If the concern is an account problem, a mistaken mass deletion, or a ransomware event that propagates through sync, a genuinely independent copy is required, and that means either mirroring the content or exporting it separately on a schedule.

Marking folders available offline

In streaming mode, the per-item control is the offline marking Google describes: streamed files are "only available online unless specifically made available offline through Drive for desktop." Applied to a folder rather than a file, it becomes a selective form of mirroring, and it is the right tool for the handful of directories that must open without a connection or must appear in a backup.

The cost is disk space for exactly those folders, which is the point. Choosing four project folders to keep offline is a far smaller commitment than mirroring a terabyte, and it can be revisited as projects finish. Marking a folder before travelling, and before running anything that reads every file in it, avoids both of the problems that streaming otherwise creates.

Why files appear to sync over and over

Repeated re-syncing of the same files is the most-searched symptom in this area, and the causes are worth separating from the mode question.

Two applications writing to the same file in a synced folder will each see the other's change and write again. Anything that rewrites a file on a timer, an editor with aggressive autosave, a note application, a database file, produces the same loop.

A file open in an application often has a lock file or a temporary sibling next to it, and those are created and removed constantly while the document is open. In mirroring mode each of those is a sync event.

The third cause is the one people miss: a file in a mirrored folder that is also open on another device is being changed from two sides. Drive resolves that by keeping both, which appears as a second copy rather than as an error.

None of these is fixed by switching modes. They are fixed by keeping actively written files, especially database files and anything a background process touches, out of the synced tree.

What to change first

Open preferences and note which mode is set, because that single setting explains most of the behaviour. If the Drive is larger than the free space, or shared drives are in use, stay on streaming and mark the folders needed offline explicitly. If it fits comfortably and offline work matters, mirror it. Either way, move build directories, dependency folders and Git repositories out of the synced tree, since those are the files that generate churn without gaining anything. Seeing at a glance which folders sit inside the synced tree is what Atriens is built for.

Frequently asked questions

Should I stream or mirror Google Drive on my Mac?

Mirror if My Drive fits comfortably in the free space and the files are needed offline. Stream if the Drive is larger than the disk, or if shared drives are involved, since Google's documentation states that "shared Drives can only be streamed." Mirroring downloads everything, streaming downloads on access.

Where is the Google Drive folder on a Mac?

In streaming mode it is under ~/Library/CloudStorage in a folder named for the account, per Google's administrator documentation, with My Drive and Shared drives inside. In mirroring mode it is a normal folder at the location chosen during setup. Since ~/Library is hidden in Finder by default, the sidebar entry is the easiest route.

Will switching from streaming to mirroring delete anything?

No. The cloud copy is unaffected by either switch. Moving to mirroring downloads the whole of My Drive to the folder selected, so the requirement is free disk space and time. Moving to mirroring is reversible by selecting streaming, closing the application, and then deleting the mirrored folder.

Why do my files sync repeatedly without changing?

Usually because something is rewriting them. Autosaving editors, note applications, database files and lock files created beside an open document all produce a steady stream of changes. A file open on two devices at once produces a second copy rather than an error. Moving actively written files out of the synced tree stops it.

Can I work offline with streaming turned on?

Only with files or folders marked available offline in advance. Google's documentation notes that streamed files are "only available online unless specifically made available offline through Drive for desktop," while mirrored files are available offline always. Marking a folder before travelling is the equivalent of mirroring just that part.

Is it safe to keep a Git repository in Google Drive?

It is best avoided. A sync engine copies the files inside .git individually with no notion of a commit, so a sync interrupted partway can leave a repository in an inconsistent state. Keeping repositories outside the synced tree and pushing to a Git host gives a second copy without that risk.

Back to all posts