← Назад ко всем вопросам

Какой git workflow вы используете в проектах и почему?

2️⃣ Подробное объяснение темы

Git Flow — это популярная модель управления ветками в Git, разработанная Винсентом Дриссеном. Она помогает организовать процесс разработки, особенно в командах, где важно поддерживать стабильность основной ветки и одновременно разрабатывать новые функции.

Основные ветки в Git Flow

  1. main (или master): Это основная ветка, содержащая стабильный код, который готов к выпуску. Все релизы происходят из этой ветки.

  2. develop: Ветка для интеграции. Все новые функции и изменения объединяются здесь перед тем, как попасть в main. Это рабочая версия проекта, которая может содержать новые, еще не выпущенные функции.

Вспомогательные ветки

  1. Feature branches: Используются для разработки новых функций. Они создаются из develop и после завершения работы сливаются обратно в develop.

    git checkout develop
    git checkout -b feature/awesome-feature
    # Разработка новой функции
    git commit -m "Добавлена новая функция"
    git checkout develop
    git merge feature/awesome-feature
    git branch -d feature/awesome-feature
    
    • git checkout develop: Переключение на ветку develop.
    • git checkout -b feature/awesome-feature: Создание новой ветки для функции.
    • git commit -m "Добавлена новая функция": Фиксация изменений.
    • git merge feature/awesome-feature: Слияние изменений в develop.
    • git branch -d feature/awesome-feature: Удаление ветки после слияния.
  2. Release branches: Используются для подготовки нового релиза. Создаются из develop и после завершения подготовки сливаются в main и develop.

    git checkout develop
    git checkout -b release/1.0.0
    # Подготовка релиза
    git commit -m "Обновление версии и документации"
    git checkout main
    git merge release/1.0.0
    git tag -a 1.0.0 -m "Релиз 1.0.0"
    git checkout develop
    git merge release/1.0.0
    git branch -d release/1.0.0
    
    • git checkout -b release/1.0.0: Создание ветки для релиза.
    • git commit -m "Обновление версии и документации": Фиксация изменений, связанных с релизом.
    • git merge release/1.0.0: Слияние изменений в main и develop.
    • git tag -a 1.0.0 -m "Релиз 1.0.0": Создание тега для релиза.
  3. Hotfix branches: Используются для быстрого исправления критических ошибок в main. Создаются из main и после исправления сливаются обратно в main и develop.

    git checkout main
    git checkout -b hotfix/urgent-fix
    # Исправление ошибки
    git commit -m "Исправление критической ошибки"
    git checkout main
    git merge hotfix/urgent-fix
    git tag -a 1.0.1 -m "Хотфикс 1.0.1"
    git checkout develop
    git merge hotfix/urgent-fix
    git branch -d hotfix/urgent-fix
    
    • git checkout -b hotfix/urgent-fix: Создание ветки для хотфикса.
    • git commit -m "Исправление критической ошибки": Фиксация исправления.
    • git merge hotfix/urgent-fix: Слияние изменений в main и develop.
    • git tag -a 1.0.1 -m "Хотфикс 1.0.1": Создание тега для хотфикса.

Зачем использовать Git Flow

Git Flow помогает структурировать процесс разработки, делая его более предсказуемым и управляемым. Он особенно полезен в командах, где несколько разработчиков работают над проектом одновременно. Это позволяет:

  • Разделять работу над новыми функциями и исправлениями ошибок.
  • Поддерживать стабильность основной ветки.
  • Легко управлять релизами и хотфиксами.
  • Обеспечивать четкую историю изменений и версионирование.

Тема: Разработка и процессы
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки