Files
global_it24_landing/UPDATE_FROM_GIT.md

6.4 KiB
Raw Blame History

🔄 Инструкция по обновлению файлов из Git репозитория

Безопасное обновление (с сохранением .env)

Файл .env теперь добавлен в .gitignore, поэтому он автоматически игнорируется Git и не будет затронут при обновлении.

Шаг 1: Перейдите в директорию проекта

cd /home/ubuntu/global_it24_landing

Шаг 2: Получите обновления из репозитория

git pull origin master

Вот и всё! Ваш локальный .env файл не будет затронут.


📋 Сценарии обновления

Сценарий 1: Простое обновление кода (рекомендуется)

Когда изменились только файлы кода, но не .env:

cd /home/ubuntu/global_it24_landing
git pull origin master
./update.sh --rebuild

Время: ~5-10 минут


Сценарий 2: Обновление с перезапуском

Когда изменились только конфигурационные файлы или .env:

cd /home/ubuntu/global_it24_landing
git pull origin master
./update.sh

Время: ~10 секунд


Сценарий 3: Полное переразвертывание

Когда нужна полная пересборка (например, изменились зависимости):

cd /home/ubuntu/global_it24_landing
git pull origin master
./deploy.sh --fast

Время: ~10-15 минут


🔐 Если .env был случайно добавлен в Git (восстановление)

Если .env файл был случайно закоммичен в Git раньше:

cd /home/ubuntu/global_it24_landing

# Создайте резервную копию вашего .env
cp .env .env.backup

# Удалите .env из Git (но не с диска!)
git rm --cached .env

# Восстановите .env из резервной копии (если нужно)
cp .env.backup .env

# Зафиксируйте изменения
git commit -m "Удален .env из репозитория"
git push origin master

⚠️ Важные замечания

Файлы, которые Git НЕ трогает:

  • .env (ваши локальные настройки)
  • node_modules/ (зависимости)
  • .next/ (сборка)
  • Любые файлы из .gitignore

🔄 Файлы, которые Git обновляет:

  • Исходный код приложения (nextjs_space/app/, nextjs_space/components/, и т.д.)
  • Конфигурационные файлы (.dockerignore, docker-compose.yml, и т.д.)
  • Скрипты (deploy.sh, update.sh, и т.д.)
  • Документация (.md файлы)

🚨 Решение проблем

Проблема: Git требует коммита перед pull

Ошибка:

error: Your local changes to the following files would be overwritten by merge:
  some-file.js
Please commit your changes or stash them before you merge.

Решение 1: Сохранить изменения (если они нужны)

git add .
git commit -m "Локальные изменения"
git pull origin master

Решение 2: Временно спрятать изменения

git stash
git pull origin master
git stash pop  # Восстановить изменения

Решение 3: Отменить локальные изменения (осторожно!)

git reset --hard HEAD
git pull origin master

Проблема: Конфликт при pull

Ошибка:

CONFLICT (content): Merge conflict in some-file.js
Automatic merge failed; fix conflicts and then commit the result.

Решение:

# 1. Посмотрите какие файлы конфликтуют
git status

# 2. Отредактируйте конфликтующие файлы вручную
nano conflicted-file.js

# 3. После исправления конфликтов
git add .
git commit -m "Разрешен конфликт слияния"

Или отмените слияние:

git merge --abort

📝 Полезные команды

# Проверить текущий статус
git status

# Посмотреть что изменилось
git diff

# Посмотреть историю коммитов
git log --oneline -10

# Проверить удаленные изменения (не скачивая)
git fetch origin
git log HEAD..origin/master --oneline

# Посмотреть содержимое .gitignore
cat .gitignore

# Проверить отслеживается ли .env файл
git ls-files | grep .env

🎯 Быстрая памятка

Обычное обновление:

cd /home/ubuntu/global_it24_landing
git pull origin master
./update.sh --rebuild

Только перезапуск (без обновления):

./update.sh

Полная пересборка:

git pull origin master
./deploy.sh --fast

Проверка после обновления

# Проверьте статус контейнеров
./status.sh

# Проверьте логи
./logs.sh

# Проверьте работу приложения
curl http://localhost:3000

# Проверьте что .env не изменился
cat .env | grep POSTGRES_PASSWORD

🆘 В случае проблем

Если что-то пошло не так:

# 1. Проверьте статус
./status.sh
./logs.sh

# 2. Попробуйте перезапустить
./update.sh

# 3. Если не помогло - полная пересборка
docker compose down
./deploy.sh --fast

# 4. Если совсем плохо - восстановите из бэкапа
docker compose down -v
# Восстановите .env из резервной копии
./deploy.sh --fast

📞 Контакты

Git репозиторий: git.mscsrv.ru/sa/global_it24_landing.git

Все готово! Теперь вы можете безопасно обновлять файлы, не боясь потерять настройки .env.