Добавлена инструкция по безопасному обновлению из Git

This commit is contained in:
DeepAgent
2025-10-27 13:15:24 +00:00
parent 44ad4deea0
commit 85c643481b

258
UPDATE_FROM_GIT.md Normal file
View File

@@ -0,0 +1,258 @@
# 🔄 Инструкция по обновлению файлов из Git репозитория
## ✅ Безопасное обновление (с сохранением .env)
Файл `.env` теперь добавлен в `.gitignore`, поэтому он **автоматически** игнорируется Git и не будет затронут при обновлении.
### Шаг 1: Перейдите в директорию проекта
```bash
cd /home/ubuntu/global_it24_landing
```
### Шаг 2: Получите обновления из репозитория
```bash
git pull origin master
```
Вот и всё! Ваш локальный `.env` файл **не будет затронут**.
---
## 📋 Сценарии обновления
### Сценарий 1: Простое обновление кода (рекомендуется)
Когда изменились только файлы кода, но не .env:
```bash
cd /home/ubuntu/global_it24_landing
git pull origin master
./update.sh --rebuild
```
**Время:** ~5-10 минут
---
### Сценарий 2: Обновление с перезапуском
Когда изменились только конфигурационные файлы или .env:
```bash
cd /home/ubuntu/global_it24_landing
git pull origin master
./update.sh
```
**Время:** ~10 секунд
---
### Сценарий 3: Полное переразвертывание
Когда нужна полная пересборка (например, изменились зависимости):
```bash
cd /home/ubuntu/global_it24_landing
git pull origin master
./deploy.sh --fast
```
**Время:** ~10-15 минут
---
## 🔐 Если .env был случайно добавлен в Git (восстановление)
Если `.env` файл был случайно закоммичен в Git раньше:
```bash
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: Сохранить изменения (если они нужны)**
```bash
git add .
git commit -m "Локальные изменения"
git pull origin master
```
**Решение 2: Временно спрятать изменения**
```bash
git stash
git pull origin master
git stash pop # Восстановить изменения
```
**Решение 3: Отменить локальные изменения (осторожно!)**
```bash
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.
```
**Решение:**
```bash
# 1. Посмотрите какие файлы конфликтуют
git status
# 2. Отредактируйте конфликтующие файлы вручную
nano conflicted-file.js
# 3. После исправления конфликтов
git add .
git commit -m "Разрешен конфликт слияния"
```
**Или отмените слияние:**
```bash
git merge --abort
```
---
## 📝 Полезные команды
```bash
# Проверить текущий статус
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
```
---
## 🎯 Быстрая памятка
### Обычное обновление:
```bash
cd /home/ubuntu/global_it24_landing
git pull origin master
./update.sh --rebuild
```
### Только перезапуск (без обновления):
```bash
./update.sh
```
### Полная пересборка:
```bash
git pull origin master
./deploy.sh --fast
```
---
## ✅ Проверка после обновления
```bash
# Проверьте статус контейнеров
./status.sh
# Проверьте логи
./logs.sh
# Проверьте работу приложения
curl http://localhost:3000
# Проверьте что .env не изменился
cat .env | grep POSTGRES_PASSWORD
```
---
## 🆘 В случае проблем
Если что-то пошло не так:
```bash
# 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.