Using Git on your Magento installation is the best option for a number of reasons. It eliminates mistakes, makes deployment easier, reduces manual actions, and keeps track of all changes. Deploying with Git and our Magento 2 Zero Downtime Deployment extension has a double benefit for both developer and customer experiences. 

However, if you can't use Git but still want to deploy with zero downtime, use the following zero downtime deployment workflow.

After ZDD Extension  v2.0.19

First, run the following zero downtime deployment command:

bin/magento magefan:zero-downtime:deploy -m

Then, wait till it asks you to add your changes to the created temporary directory. Make these changes, and press ENTER in the console once you're ready. 

The Zero Downtime Deployment Extension will do the rest and deploy changes with zero downtime.  

Before ZDD Extension  v2.0.19

If you're using older versions of the extension, follow these steps to deploy changes with zero downtime without Git.

php -dmemory_limit=-1 bin/magento magefan:zero-downtime:remove-old-files-in-magento-root
php -dmemory_limit=-1 bin/magento magefan:zero-downtime:create-instance

cd var/mfzerodwt/instance

#git pull origin master
#composer install


php -dmemory_limit=-1 bin/magento magefan:zero-downtime:enable-new-modules
php -dmemory_limit=-1 bin/magento setup:di:compile
php -dmemory_limit=-1 bin/magento setup:static-content:deploy -f

php -dmemory_limit=-1 bin/magento setup:upgrade --keep-generated --magento-init-params=MAGE_DIRS[base][path]=<PATH_TO_YOUR_MAGENTO>/var/mfzerodwt/instance

cd ../../../

php -dmemory_limit=-1 bin/magento magefan:zero-downtime:copy-new-files-in-magento-root

#git pull origin master
#composer install

# Previus commands copy only new files for generated, var/view_preprocesed, pub/static
# Need to UPLOAD NEW FILES CHANGES to the live folder manualy

php -dmemory_limit=-1 bin/magento magefan:zero-downtime:replace-files-in-magento-root

php -dmemory_limit=-1 bin/magento c:e
php -dmemory_limit=-1 bin/magento c:f

php -dmemory_limit=-1 bin/magento magefan:zero-downtime:remove-old-files-in-magento-root
php -dmemory_limit=-1 bin/magento magefan:zero-downtime:delete-instance

Note: you should paste an absolute path to your Magento instead or <PATH_TO_YOUR_MAGENTO>.

As you can see running static content deploy without Git requires more actions which is rather time-consuming. If you decide to automate the process, explore the zero downtime deployment configuration options for Git.