6.4 KiB
🔄 Инструкция по обновлению файлов из 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.