TGViewer
Библиотека девопса | DevOps, SRE, Sysadmin Библиотека девопса | DevOps, SRE, Sysadmin @devopsslib · 10.4K subscribers
Post #4414 1.56K
🤓 Git auto pull для деплоя, но с оговорками

Сервер сам подтягивает свежий код и перезапускает сервис. Но голый 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

#арсенал_инженера
  • 👍 4
  • 😢 1
More from @devopsslib
  1. Sep 25, 2026🤖 ИИ-агенту теперь можно поставить задачу прямо в GitLab — и не расписывать каждый следую…
  2. Sep 25, 2026✨ Как настроить PostgreSQL для продакшен-нагрузок При переходе к продакшен-нагрузкам важно…
  3. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
  4. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  5. Sep 15, 2026👩‍💻 Bash-скрипт для мониторинга сервисов Полноценный мониторинг вроде Zabbix или Prometh…
  6. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →