Сервер сам подтягивает свежий код и перезапускает сервис. Но голый
git pull в проде часто превращается в лотерею, потому что меняет рабочую директорию прямо на месте и может оставить полусобранное состояние.Как сделать чуть безопаснее
Вместо
pull лучше делать fetch и жестко ставить нужный коммит или ветку. Так меньше сюрпризов с мержами и конфликтами. А еще обязательно чистить мусор, иначе старые файлы могут остаться в каталоге и влиять на запуск.Скрипт на python:
import os
import subprocess
def run(cmd):
subprocess.run(cmd, check=True)
def deploy(repo_path, branch="main"):
os.chdir(repo_path)
run(["git", "fetch", "origin", branch])
run(["git", "reset", "--hard", f"origin/{branch}"])
run(["git", "clean", "-df"])
print(f"Код обновлен до origin/{branch}")
deploy("/path/to/repo")
Этот вариант повторяемее, чем
git pull, потому что не пытается мержить локальные изменения.📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера