Перейти к основному содержимому

Ветвление

Ветвление создает отдельную копию вашей работы, таким образом, вы можете добавлять новые функции, не нарушая текущего прогресса. Он позволяет нескольким разработчикам или командам одновременно работать над различными функциями, не мешая друг другу.

Предположим, у вас есть приложение электронной коммерции, и вы хотите добавить новую функцию, например, систему рекомендаций товаров. Вместо того, чтобы включать ее непосредственно в вашу ветку main и потенциально вызывать проблемы, вы можете создать ветку, чтобы работать над этой новой функцией изолированно. После завершения работы можно интегрировать ее обратно в ветку main.

к сведению

Эта функция доступна только для пользователей Pro, Teams и Enterprise.

warning

Создание ветки здесь не создает ее на GitHub. Ветви остаются и управляются исключительно внутри FlutterFlow. Вы также можете узнать больше о управлении пользовательским кодом на GitHub.

Обзор ветвления

Перед созданием и объединением ветки важно понимать общий рабочий процесс. Вот как это выглядит:

branching

Сначала создайте новую ветку из ветки main. После внесения изменений и завершения работы над функцией, объедините эту новую ветку обратно в ветку main. Если есть какие-либо конфликты, их необходимо разрешить.

Создание новой ветки

Чтобы создать новую ветку из текущей ветви, просто перейдите к кнопке Branching Options рядом с текущей веткой в меню Branching.

подсказка

Вы можете создать новую ветку из любой существующей ветки, однако наиболее распространено создавать новые ветки из main.

Коммиты

Коммит является практически сохраненным снимком вашего проекта в определенный момент времени. Когда вы вносите изменения в проект (например, добавляете новые виджеты, изменяете действия или настраиваете интеграции), вы можете создать коммит, чтобы сохранить эти изменения. Каждый коммит хранит запись о том, что было изменено, и служит в качестве истории версий вашей ветки, облегчая просмотр изменений и откат к предыдущим версиям при необходимости.

Создание коммитов

Чтобы создать коммит, выполните следующие шаги:

Лучшие практики для коммитов
  • Часто коммитьте: Часто сохраняйте вашу работу, чтобы убедиться, что изменения отслеживаются, и у вас есть подробная история версий. Вы можете использовать комбинацию клавиш (cmd + enter) для более быстрой итерации!
  • Используйте понятные сообщения: Всегда давайте содержательные сообщения коммитов, объясняющие, что было сделано.
  • Тестируйте перед фиксированием: Убедитесь, что проект работает ожидаемым образом перед фиксированием значительных изменений.

Просмотр изменений в коммитах

После создания коммита вы можете увидеть список всех коммитов в разделе История ветки. Здесь каждый коммит отображается с отметкой времени, пользователем, который внес изменения, и сообщением коммита. Вы также можете искать и фильтровать коммиты по определенным пользователям и диапазонам дат.

Чтобы увидеть изменения коммита, просто щелкните по коммиту.

Опции коммита

Предусмотрены следующие опции для каждого коммита:

  • Просмотр коммита: Эта опция позволяет просмотреть детали конкретного коммита.
  • Восстановить ветку до коммита: Эта опция позволяет вернуть ветку к предыдущему коммиту. Она создает новый коммит, который сбрасывает ветку в состояние выбранного коммита. Это особенно полезно, если недавний коммит вызвал проблемы, и вам нужно вернуться к стабильной точке в истории проекта.
  • Скопировать идентификатор коммита: Каждому коммиту назначается уникальный идентификатор. Эта опция позволяет скопировать идентификатор коммита, что может быть полезно для ссылок на конкретные коммиты при совместной работе с членами команды.

Коммиты против снимков и версий

FlutterFlow предлагает несколько способов сохранения состояния вашего проекта в определенные моменты времени.

  • Снимки автоматически создаются при редактировании вашего проекта. Представьте их как автоматические резервные копии, к которым вы можете вернуться по необходимости.
  • Версии и коммиты, с другой стороны, создаются вручную. В то время как оба способа служат аналогичной цели, коммиты предлагают большую гибкость, позволяя просматривать конкретные изменения, сделанные в каждом коммите. Если вы используете план, поддерживающий ветвление, рекомендуется использовать коммиты для лучшего отслеживания и контроля версий.

Вы можете узнать больше о снимках и версиях здесь.

Объединение

Объединение позволяет внести изменения, внесенные в одну ветку, в другую. Например, вы можете захотеть внести ваши изменения из ветви функций или ветви, где вы разрабатываете новую функцию, обратно в ветку main, когда они будут готовы к развертыванию для ваших пользователей.

Предположим, что ваша ветка функции имеет два коммита: Коммит 1 и Коммит 3 (которые представляют ваши изменения), и Коммит 2 (сделанный коллегой в главной ветке). Объединение будет выглядеть примерно так:

после-объединения

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

после-объединения-2

При объединении FlutterFlow сравнивает изменения, внесенные в обе ветки. Если изменения не перекрываются или конфликтуют, ветки автоматически объединяются. Если есть конфликты (например, обе ветки изменили одно и то же свойство виджета), их необходимо разрешить перед завершением объединения.

Несколько важных моментов
  • В настоящее время FlutterFlow поддерживает только объединение в родительскую ветку, или ветку, из которой была создана текущая ветка (обычно main)
  • Только пользователь, инициировавший объединение, имеет доступ как к ветке main, так и к ветке во время текущего объединения.
  • Объединения приводят к созданию коммита объединения, что означает, что можно отменить объединение, восстановив ветку до предыдущего коммита.
  • Если вы покидаете проект во время объединения и возвращаетесь, прогресс, достигнутый в ходе объединения, сохранится.

Инициация объединения

Вы можете инициировать объединение в любом направлении, выбрав кнопку Branch Options рядом с текущей веткой в меню Branching.

Затем вы увидите экран, на котором отобразятся все конфликты. Если у вас нет конфликтов, вы можете просто продолжать и нажать Merge Branch.

объединение

Разрешение конфликтов при объединении

Конфликт объединения возникает, когда несколько участников команды вносят изменения в одну и ту же часть проекта.

Например, представьте себе двух разработчиков, Алису и Боба, работающих над одним и тем же проектом FlutterFlow и оба решают обновить один и тот же виджет кнопки.

РазработчикИмя веткиИзменения
Алисаfeature-alice- Меняет текст кнопки на "Отправить форму"
- Меняет цвет кнопки на синий
Бобfeature-bob- Меняет текст кнопки на "Отправить"
- Меняет цвет кнопки на зеленый

Когда изменения Алисы объединяют в главный проект первыми, их обновления будут интегрированы без проблем. Однако, когда Боб пытается объединить свои изменения после этого, возникнет конфликт объединения, потому что изменения текста и цвета кнопки уже были изменены Алисой.

В вашем проекте, если у вас возникли конфликты объединения, вот как их разрешить.

Для определенных конфликтов, например, связанных с переменными и настройками API, вы увидите опцию View Configuration. Включение этой опции открывает разделенный экран, где отображаются изменения из новой ветки, позволяя вам легко определить, что изменилось. В этом представлении вы увидите удаленные элементы, выделенные красным, и добавленные элементы, выделенные зеленым.

view-configuration

Ручное разрешение конфликтов

Если вы решаете разрешить конфликт вручную, вы можете вносить изменения напрямую в разделе Accepted Changes. Обратите внимание, что если вы отмените ручное разрешение, вам будет предложено либо сохранить, либо отклонить внесенные изменения с начала процесса разрешения.

к сведению

Если визуальный редактор не отображает что-то в интерфейсе разделенного экрана, что вам нужно управлять во время слияния, нажмите кнопку Edit Project и редактируйте проект, как обычно.

Права на уровне веток

В вашем проекте вы можете назначать такие роли, как Редакторы и Сливатели, для участников проекта для каждой ветки.

Чтобы настроить эти разрешения, перейдите в Settings & Integrations > Project Setup > Collaboration > Branch Permissions.

branch-permission

  • Редакторы, назначенные для ветки, имеют право вносить прямые изменения в проект, работая внутри этой ветки.
  • Сливатели, напротив, могут только сливать другие ветки в эту ветку. Это особенно полезно для защищенных веток, в которые вы не хотите разрешать прямые изменения. Вместо этого пользователи могут только сливать другие ветки в эту ветку.

Закрытие ветки

Закрытие ветки — это распространенная практика после того, как ветка выполнила свою задачу, обычно после того, как ее изменения были объединены в другую ветку (например, main или development). Регулярное закрытие неактивных или объединенных веток помогает поддерживать чистоту, эффективность и порядок в проекте.

Когда закрывать ветку

  • После объединения: Как только изменения в ветке объединены в основную ветку (main) или другую целевую ветку, ее можно безопасно закрыть. Это часто происходит после завершения работы над функцией или исправления ошибки.
  • Неиспользуемая ветка: Если ветка больше не нужна (например, функция была заброшена или изменения были внесены в другую ветку), ее лучше закрыть.
warning

После закрытия ветка больше не будет отображаться в списке активных Branches, а это значит, что в нее нельзя будет вносить изменения. Это действие является окончательным и не может быть отменено, поэтому убедитесь, что все необходимые работы завершены или объединены перед закрытием ветки.

Вот как можно закрыть ветку:

Рекомендации
  • Проверка перед удалением: Перед закрытием ветки убедитесь, что все необходимые изменения были объединены или больше не нуждаются в хранении.
  • Координация с командой: Если вы работаете в команде, убедитесь, что никто активно не использует ветку перед ее закрытием, чтобы избежать прерывания текущей работы.