Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Accepted Answer
Either option would work. I would recommend using a git pull to pull the updates to your master branch since this will also clean up any files that have been removed. Using FTP/SFTP would simply copy the new files over the old and would not handle deletions.
If you wanted to take things a step further you could add a script to your site that acts as a webhook. With this in place, merging your changes into the master branch on github could kick off a git pull on your server and keep your live site in sync with the master branch of your git repository.
I’ve written a bash script that does it, given that we do not have any changes on server. Feel free to add/comment on improvements:
APP_NAME = Name of Application to display APP_FOLDER = Django project’s GIT root folder
Make sure to give Execute permissions on this script: chmod 777 /home/django/update_app.sh
#!/bin/bash
echo 'Updating <APP_NAME>...'
cd /home/django/<APP_FOLDER>/
source venv/bin/activate
if [ -z "$(git status --untracked-files=no --porcelain)" ]; then
if git pull origin master; then
echo 'GIT PULL completed'
else
echo 'GIT PULL failed: exiting program.'
exit
fi
echo 'Upgrading DB to latest...'
export DJANGO_SETTINGS_MODULE=<APP>.settings-prod
python3 manage.py migrate
echo 'Restarting servers...'
sudo systemctl daemon-reload
sudo service gunicorn restart
sudo service nginx restart
else
echo 'There are modified files. Aborting update process..'
fi
echo 'Finished updating.'
i am using the git pull origin master command but it isn’t updating my python files like views, forms etc. All other files like html files are updated