О ветвях
Ветви позволяют разрабатывать возможности, исправлять ошибки или безопасно экспериментировать с новыми идеями в автономной области репозитория.
Вы всегда создаете ветвь из существующей ветви. Как правило, новую ветвь можно создать из ветви репозитория по умолчанию. Затем в этой новой ветви можно работать без учета изменений, вносимых в репозиторий другими людьми. Ветвь, созданная для создания возможности, обычно называется ветвью возможности или тематической веткой. Дополнительные сведения см. в разделе Создание и удаление ветвей в репозитории.
Вы также можете использовать ветвь для публикации сайта GitHub Pages. Дополнительные сведения см. в разделе Описание GitHub Pages.
Необходимо иметь доступ на запись в репозиторий, чтобы создать ветвь, открыть запрос на вытягивание или удалить и восстановить ветви в запросе на вытягивание. Дополнительные сведения см. в разделе Разрешения на доступ в GitHub.
Сведения о ветви по умолчанию
При создании репозитория с содержимым на GitHubGitHub создает репозиторий с одной ветвью. Эта первая ветвь в репозитории является ветвью по умолчанию. Ветвь по умолчанию — это ветвь, которую GitHub отображает при посещении репозитория. Ветвь по умолчанию также является начальной ветвью, которую Git извлекает локально, когда кто-то клонирует репозиторий. Если не указана другую ветвь, ветвь по умолчанию в репозитории служит базовой ветвью для новых запросов на вытягивание и фиксаций кода.
По умолчанию GitHub называет ветвь по умолчанию main
в любом новом репозитории.
Ветвь по умолчанию для существующего репозитория можно изменить. Дополнительные сведения см. в разделе Изменение ветви по умолчанию.
Имя ветви по умолчанию для новых репозиториев можно настроить. Дополнительные сведения см. в разделе[ "AUTOTITLE", "Управление именем ветви по умолчанию для репозиториев" и "Применение политик управления репозиториями в организации](/organizations/managing-organization-settings/managing-the-default-branch-name-for-repositories-in-your-organization)".
Работа с ветвями
Когда вы удовлетворены работой, вы можете открыть запрос на вытягивание, чтобы объединить изменения в текущей ветви (головной ветви) в другую ветвь (базовую ветвь). Дополнительные сведения см. в разделе Сведения о запросах на вытягивание.
После объединения или закрытия запроса на вытягивание можно удалить головную ветвь, так как она больше не нужна. Для удаления ветвей необходимо иметь доступ на запись в репозитории. Невозможно удалить ветви, которые напрямую связаны с открытыми запросами на вытягивание. Дополнительные сведения см. в разделе Удаление и восстановление ветвей в запросе на вытягивание.
При удалении головной ветви после объединения запроса на вытягивание GitHub проверяет наличие открытых запросов на вытягивание в том же репозитории, где удаленная ветвь указана в качестве базовой ветви. GitHub автоматически обновляет все такие запросы на вытягивание, заменяя базовую ветвь на объединенную базовую ветвь запроса на вытягивание. На указанных ниже схемах показано следующее.
Здесь кто-то создал ветвь, вызываемую feature1
из ветви main
, и вы создали ветвь, вызываемую feature2
из feature1
. Здесь есть открытые запросы на вытягивание для обеих ветвей. Стрелки указывают текущую базовую ветвь для каждого запроса на вытягивание. На этом этапе feature1
является базовой ветвью для feature2
. Если запрос на вытягивание для feature2
объединен сейчас, ветвь feature2
будет объединена в feature1
.
На указанной ниже схеме кто-то объединил запрос на вытягивание feature1
в ветвь main
и удалил ветвь feature1
. В результате GitHub автоматически перенацелил запрос на вытягивание feature2
таким образом, чтобы его базовой ветвью стала main
.
Теперь при слиянии запроса на вытягивание feature2
он будет объединен в ветвь main
.
Работа с защищенными ветвями
Администраторы репозитория или пользовательские роли с разрешением "Изменить правила репозитория" может включить защиту в ветви. Если вы работаете с защищенной ветвью, то не сможете удалить или принудительно отправить ее в ветвь. Администраторы репозитория могут дополнительно включить несколько других параметров защищенной ветви для принудительного применения различных рабочих процессов перед слиянием ветви.
Примечание. Если вы являетесь администратором репозитория, вы можете объединить запросы на вытягивание в ветвях с включенными защитами ветви, даже если запрос на вытягивание не соответствует требованиям, если только защита ветви не задана как "Включить администраторов".
Чтобы узнать, можно ли объединить запрос на вытягивание, просмотрите поле слияния в нижней части вкладки беседы** запроса **на вытягивание. Дополнительные сведения см. в разделе "Сведения о защищенных ветвях".
Если ветвь защищена:
- Вы не сможете удалить или принудительно отправить ее в ветвь.
- Если в ветви включены необходимые проверки состояния, вы не сможете объединить изменения в ветвь до тех пор, пока не будут пройдены все необходимые проверки CI. Дополнительные сведения см. в разделе Сведения о проверках состояния.
- Если в ветви включены необходимые проверки запросов на вытягивание, вы не сможете объединить изменения в ветвь до тех пор, пока не будут выполнены все требования в политике проверки запросов на вытягивание. Дополнительные сведения см. в разделе Слияние запроса на вытягивание.
- Если обязательная проверка от владельца кода включена в ветви, а запрос на вытягивание изменяет код, имеющий владельца, владелец кода должен утвердить запрос на вытягивание, прежде чем его можно будет объединить. Дополнительные сведения см. в разделе О владельцах кода.
- Если в ветви включена обязательная подпись фиксации, вы не сможете отправлять фиксации в ветвь, которая не подписана и не проверена. Дополнительные сведения см. в разделе "[AUTOTITLE" и "Сведения о проверке подписи фиксации](/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-signed-commits)".
- Если вы используете редактор конфликтов GitHub, чтобы устранить конфликты для запроса на вытягивание, созданного из защищенной ветви, GitHub помогает создать альтернативную ветвь для запроса на вытягивание, чтобы решения конфликтов можно было объединить. Дополнительные сведения см. в разделе Разрешение конфликта слияния в GitHub.
Дополнительные материалы
- "Сведения о запросах на вытягивание"
- "Глоссарий GitHub" в глоссарии GitHub
- Раздел Branches in a Nutshell (Коротко о ветвях) в документации по Git