Тестовая публикация 12/16
Используйте ветвь для изоляции работ по разработке, не затрагивая другие ветви в репозитории. Каждый репозиторий имеет одну ветвь по умолчанию и может иметь несколько других ветвей. Вы можете объединить ветвь в другую ветвь с помощью запроса на вытягивание.
В этой статье |
|
---|---|
Сведения о ветвях
Ветви позволяют разрабатывать функции, исправлять ошибки или безопасно экспериментировать с новыми идеями в автономной области репозитория.
Вы всегда создаете ветвь из существующей ветви. Как правило, можно создать новую ветвь из ветвь по умолчанию репозитория. Затем вы можете работать с этой новой ветвью в изоляции от изменений, внесенных другими пользователями в репозиторий. Ветвь, которую вы создаете для создания компонента, обычно называется ветвь компонента или ветвью раздела. Дополнительные сведения см. в разделе Создание и удаление ветвей в репозитории.
Вы также можете использовать ветвь для публикации GitHub Pages сайта. Дополнительные сведения см. в разделе О GitHub Pages.
Необходимо иметь доступ на запись в репозиторий, чтобы создать ветвь, открыть запрос на вытягивание или удалить и восстановить ветви в запросе на вытягивание. Дополнительные сведения см. в разделе Разрешения доступа на GitHub.
О ветвь по умолчанию
При создании репозитория с содержимым на GitHub GitHub создает репозиторий с одной ветвью. Эта первая ветвь в репозитории является ветвь по умолчанию. Ветвь по умолчанию — это ветвь, которую GitHub отображает при посещении репозитория. Ветвь по умолчанию также является начальной ветвью, которую Git проверяет локально, когда кто-то клонирует репозиторий. Если не указана другая ветвь, ветвь по умолчанию в репозитории является базовая ветвь для новых запросов на вытягивание и фиксаций кода.
По умолчанию GitHub присваивает имя ветвь по умолчанию main в любом новом репозитории.
Вы можете изменить ветвь по умолчанию для существующего репозитория. Дополнительные сведения см. в разделе Изменение ветвь по умолчанию.
Вы можете задать имя ветвь по умолчанию для новых репозиториев. Дополнительные сведения см. в разделах Управление ветвь по умолчанию для репозиториев, Управление именем ветвь по умолчанию для репозиториев в организации и Применение политик управления репозиториями в корпоративной учетной записи.
Работа с ветвями
Когда вы будете удовлетворены своей работой, можно открыть запрос на вытягивание, чтобы объединить изменения в текущей ветви (головной ветви) в другую ветвь (базовую ветвь). Дополнительные сведения см. в разделе О запросах на вытягивание."
После объединения или закрытия запроса на вытягивание вы можете удалить главная ветвь, так как это больше не требуется. Для удаления ветвей необходимо иметь доступ на запись в репозитории. Нельзя удалять ветви, непосредственно связанные с открытыми запросами на вытягивание. Дополнительные сведения см. в разделе Удаление и восстановление ветвей в запросе на вытягивание.
При удалении главная ветвь после объединения запроса на вытягивание GitHub проверяет наличие открытых запросов на вытягивание в том же репозитории, где в качестве базовая ветвь указана удаленная ветвь. GitHub автоматически обновляет все такие запросы на вытягивание, изменяя их базовая ветвь на базовая ветвь объединенного запроса на вытягивание. Это показано на следующих схемах.
Здесь кто-то создал ветвь с именем feature1 из ветви main, а затем вы создали ветвь с именем feature2 из feature1. Существуют открытые запросы на вытягивание для обеих ветвей. Стрелки указывают текущий базовая ветвь для каждого запроса на вытягивание. На данный момент feature1 является базовая ветвь для feature2. Если запрос на вытягивание для feature2 теперь объединен, ветвь feature2 будет объединена с компонентом feature1.
На следующей схеме кто-то объединил запрос на вытягивание для feature1 в ветвь master и удалил ветвь feature1. В результате GitHub автоматически перенацелил запрос на вытягивание для feature2, чтобы его базовая ветвь теперь master.
Теперь при слиянии запроса на вытягивание feature2 он будет объединен с main branch.
Работа с защищенными ветвями
Администраторы репозитория могут включить защиту в ветви. Если вы работаете с защищенной ветвью, вы не сможете удалить или принудительная отправка в нее. Администраторы репозитория могут дополнительно включить несколько других параметров защищенная ветвь для принудительного применения различных рабочих процессов перед слиянием ветви.
Примечание: Если вы являетесь администратором репозитория, вы можете объединить запросы на вытягивание в ветвях с включенной защитой ветвей, даже если запрос на вытягивание не соответствует требованиям, если для защиты ветвей не задано значение "Включить администраторов".
Чтобы узнать, можно ли объединить запрос на вытягивание, просмотрите поле слияния в нижней части вкладкиConversation запроса на вытягивание. Дополнительные сведения см. в разделе О защищенных ветвях.
Когда ветвь защищена:
-
Вы не сможете удалить или принудительная отправка в ветвь.
-
Если в ветви включены необходимые проверки состояния, вы не сможете объединить изменения в ветвь, пока не будут выполнены все необходимые тесты CI. Дополнительные сведения см. в разделе О проверки состояния.
-
Если в ветви включены необходимые проверки запросов на вытягивание, вы не сможете объединить изменения в ветвь, пока не будут выполнены все требования политики проверка запроса на вытягивание. Дополнительные сведения см. в разделе Слияние запроса на вытягивание.
-
Если в ветви включена требуемая проверка из владелец кода, а запрос на вытягивание изменяет код с владельцем, владелец кода должен утвердить запрос на вытягивание, прежде чем его можно будет объединить. Дополнительные сведения см. в разделе Сведения о владельцах кода.
-
Если в ветви включено обязательное подписывание фиксации, вы не сможете отправлять в ветвь фиксации, которые не подписаны и не проверены. Дополнительные сведения см. в разделах Сведения о проверке подписи фиксации и О защищенных ветвях.
-
Если вы используете редактор конфликтов GitHub для устранения конфликтов для запроса на вытягивание, созданного из защищенная ветвь, GitHub поможет создать альтернативную ветвь для запроса на вытягивание, чтобы можно было объединить решение конфликтов. Дополнительные сведения см. в разделе Разрешение конфликт слияния на GitHub.
Дальнейшее чтение
"О запросах на вытягивание"
"Ветвь" в глоссарии GitHub
"Ветви в ореховой оболочке" в документации по Git