On such a project, a change published to the repository from a clone is not live until it is deployed. Until then, writing those files through the tools is refused with PENDING_DEPLOY, so the newer published version cannot be lost.
A deploy is an explicit step that the owner or a manager runs, and SyncNow never deploys on its own. For each file it checks that the hosting still holds exactly the last deployed version, writes the new one with secret placeholders turned back into the real values, and reads it back to verify its SHA-256; the deployed version moves forward only when every file is verified. Files changed outside SyncNow are never overwritten by a deploy, and files removed from the repository are deleted from the hosting only when that is asked explicitly.
Runtime data such as uploads, caches and logs is not in the repository, so a deploy never touches it. A deploy that does not complete is reported with the files done and the files that failed, and every completed deploy appears in Activity under the Deployments type.