Создать ветку
Фича-ветка автоматически попадёт в workflow frontend/backend + deploy.
Последние события
Ветки
| Ветка | Статус | Коммит | Дивергенция | Действия |
|---|
📖 Инструкция по работе с ветками
Что такое "смержена" (merged)?
Ветка считается "смерженной", если все её коммиты уже присутствуют в ветке master.
- ✅ Ветка смержена: Все коммиты из ветки уже в master (обычно после деплоя)
- ❌ Ветка не смержена: В ветке есть коммиты, которых нет в master
Как сделать, чтобы ветка была смержена? Задеплоить ветку в master через кнопку "Deploy".
💡 Важно: Для feature-веток (test*, feature/*, release/*, bugfix/*) используется принудительное удаление по умолчанию, поэтому они удаляются даже если не смержены. Но если изменения важны — обязательно задеплойте их в master перед удалением!
Сценарии использования кнопок
🔧 Тестирование изменений БЕЗ деплоя в master
- Создать ветку или переключиться на существующую
- Внести изменения в код
- Нажать "Создать коммит" → сохранить изменения в ветке
- Нажать "🔧 Применить" → сервер переключится на ветку и пересоберёт фронтенд
- Проверить изменения на сайте
- Если плохо → нажать "↩️ Откат+Сборка" → откатит последний коммит и пересоберёт
- Если хорошо → нажать "Deploy" для фиксации в master
💡 Это позволяет тестировать изменения без деплоя в master. Откат делается одной кнопкой.
1️⃣ Добавление новой функции в master (стандартный путь)
- Создать ветку (например,
test1илиfeature/new-feature) - Добавить изменения в код
- Нажать "Создать коммит" → ввести сообщение → создать коммит
- Нажать "Deploy" → ветка смержится в master
- После деплоя изменения появятся в master и на продакшене
- Опционально: нажать "Удалить" для удаления ветки
2️⃣ Откат изменений в feature-ветке
- Найти нужную feature-ветку в таблице
- Нажать "Откатить" → создастся revert коммит, который отменяет последний коммит
- Если нужно добавить новые изменения после отката:
- Нажать "Создать коммит" → ввести сообщение → создать коммит
- Нажать "Deploy" для применения изменений в master
3️⃣ Восстановление отката
- После отката появится кнопка "Восстановить"
- Нажать "Восстановить" → откатит revert коммит, вернув изменения
- Нажать "Deploy" для применения восстановленных изменений в master
4️⃣ Отмена деплоя (undo deploy)
- Найти feature-ветку, которая была задеплоена в master
- Нажать "Отменить деплой" → откатит merge коммит в master
- Изменения из ветки исчезнут из master и с продакшена
- Ветка останется, можно снова задеплоить или удалить
5️⃣ Удаление ветки
- Найти нужную ветку в таблице
- Нажать "Удалить" → появится подтверждение
- Подтвердить удаление
- ⚠️ Внимание: Ветка удалится локально и в GitHub. Если изменения важны — обязательно задеплойте их в master перед удалением!
- Для feature-веток: Используется принудительное удаление, ветка удалится даже если не смержена
6️⃣ Откат в master
- Найти ветку
masterв таблице - Нажать "Откатить" → создастся revert коммит, который отменяет последний коммит в master
- После отката нужно задеплоить: Нажать кнопку "Deploy" для ветки master, чтобы revert коммит отправился в GitHub и применился на продакшене через CI/CD
- 💡 Важно: Откат создаёт revert коммит локально. Чтобы изменения применились на продакшене, обязательно нажмите "Deploy" после отката.
- ⚠️ Внимание: Откат в master влияет на продакшен! Используйте осторожно. После деплоя изменения исчезнут из master и с продакшена.
Описание кнопок
Создаёт коммит с изменениями в текущей ветке. Можно выбрать файлы вручную или добавить все автоматически.
Переключает сервер на эту ветку и пересобирает фронтенд. Для тестирования изменений БЕЗ деплоя в master. Изменения видны на сайте сразу.
Откатывает последний коммит в ветке И пересобирает фронтенд. Быстрый откат изменений на сайте одной кнопкой.
Смерживает ветку в master и отправляет изменения в GitHub. После деплоя изменения попадают на продакшен через CI/CD.
Создаёт revert коммит, который отменяет последний коммит в ветке. После отката появляется кнопка "Восстановить".
Откатывает revert коммит, возвращая изменения. Доступна только после отката.
Откатывает merge коммит в master, убирая изменения из master и с продакшена. Доступна только для задеплоенных веток.
Удаляет ветку локально и в GitHub. Для feature-веток используется принудительное удаление. ⚠️ Убедитесь, что важные изменения задеплоены!
Типы веток и их особенности
test*, feature/*, release/*, bugfix/*
- ✅ Force delete по умолчанию
- ✅ Удаляются даже если не смержены
- ✅ Можно удалять без деплоя
hotfix/*
- ❌ Обычное удаление
- ⚠️ Требуют, чтобы ветка была смержена
- 💡 Используются для критических исправлений
Основная ветка проекта
- 🔒 Защищённая ветка
- ❌ Нельзя удалить
- ✅ Можно откатывать коммиты
💡 Полезные советы
- Всегда работайте через feature-ветки: Не добавляйте изменения напрямую в master. Создайте ветку, добавьте изменения, создайте коммит, задеплойте.
- Проверяйте статус деплоя: Индикатор вверху страницы показывает статус последнего деплоя.
- Важные изменения: Обязательно задеплойте их в master перед удалением ветки, иначе они могут быть потеряны.
- Тестовые ветки: Можно удалять без деплоя, так как для них используется force delete.
- Дивергенция: Показывает, на сколько коммитов ветка впереди/позади master. Первое число — впереди, второе — позади.
🧪 Инструкция по тестированию workflow
Полный цикл тестирования Git workflow
Эта инструкция описывает полный цикл тестирования workflow: создание ветки, внесение изменений, коммит, деплой, проверка и откат.
Шаг 1: Создание тестовой ветки
- На странице
/infra/githubвведите имя ветки (например,test-workflow) - Нажмите кнопку "Создать и запустить тесты"
- Ветка будет создана от
masterи автоматически отправлена в GitHub - ✅ Проверка: Ветка должна появиться в таблице веток
Шаг 2: Внесение изменений в код
- Внесите изменения в код (например, удалите или добавьте элемент на странице)
- Изменения должны быть в файлах проекта (frontend или backend)
- ✅ Проверка: Изменения видны в рабочей директории, но ещё не закоммичены
Шаг 3: Создание коммита
- Найдите вашу ветку в таблице и нажмите кнопку "Создать коммит"
- Введите сообщение коммита (например,
test: удалить цифру 1 с фронтенда) - Выберите файлы для коммита (или используйте "Добавить все файлы автоматически")
- Нажмите "Создать коммит"
- ✅ Проверка: Коммит создан, изменения зафиксированы в ветке
Шаг 4: Деплой в master
- Найдите вашу ветку в таблице и нажмите кнопку "Deploy"
- Подтвердите деплой (ветка будет смержена в
master) - Дождитесь завершения деплоя (статус изменится на "Успешно")
- ✅ Проверка: Изменения должны появиться в
masterи на продакшене - 💡 Важно: После деплоя фронтенд пересобирается автоматически. Если нужно пересобрать вручную, используйте кнопку "🔄 Пересобрать фронтенд" в панели управления
Шаг 5: Проверка результата
- Проверьте что изменения применились на продакшене
- Обновите страницу в браузере (Ctrl+Shift+R для жёсткого обновления)
- ✅ Проверка: Изменения должны быть видны на сайте
- Проверьте логи сервиса если что-то не работает
Шаг 6: Откат деплоя (тестирование отката)
- Найдите вашу ветку в таблице и нажмите кнопку "Отменить деплой"
- Подтвердите откат (merge коммит будет откачен в
master) - Дождитесь завершения отката
- Пересоберите фронтенд и перезапустите сервис
- ✅ Проверка: Изменения должны исчезнуть из
masterи с продакшена - 💡 Важно: Откат создаёт revert коммит, который отменяет merge. Ветка остаётся, можно снова задеплоить.
💡 Полезные команды для проверки
git log --oneline -5— посмотреть последние 5 коммитовgit status— проверить текущее состояние репозиторияcd frontend && npm run build— пересобрать фронтенд (выполняется автоматически после деплоя)sudo systemctl restart avioniq-frontend— перезапустить фронтенд сервис (выполняется автоматически после деплоя)- 💡 Совет: Используйте кнопку "🔄 Пересобрать фронтенд" в UI для ручной пересборки
grep -r "github-pill" frontend/src/— найти где используется элемент с цифрой
⚠️ Важные замечания
- Всегда работайте через feature-ветки: Не добавляйте изменения напрямую в master
- Проверяйте перед деплоем: Убедитесь что изменения корректны перед деплоем в master
- Автоматическая пересборка: Фронтенд пересобирается автоматически после деплоя. Если нужно пересобрать вручную, используйте кнопку в UI
- Откат обратимым: После отката можно снова задеплоить ветку или использовать "Восстановить"