Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы, возможно, еще выполняется. Актуальные сведения см. в документации на английском языке.

GitHub Flow

Выполните поток данных GitHub для совместной работы над проектами.

Введение

Процесс GitHub — это упрощенный рабочий процесс на основе ветвей. Процесс GitHub полезен для всех пользователей, а не только для разработчиков. Например, на GitHub процесс GitHub используется для политики сайта, документации и плана развития.

Предварительные требования

Для выполнения процесса GitHub потребуется учетная запись GitHub и репозиторий. Сведения о создании учетной записи см. в разделе Регистрация на GitHub. Сведения о создании репозитория см. в разделе Создание репозитория. Сведения о том, как найти существующий репозиторий для участия, см. в разделе Способы участия в создании открытого кода в GitHub.

Выполнение процесса GitHub

Совет. Вы можете выполнить все этапы процесса GitHub через веб-интерфейс GitHub, командную строку и GitHub CLI или GitHub Desktop.

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

Создайте ветвь репозитория. Короткое описательное имя ветви позволит участникам совместной работы быстро получать представление о текущей работе. Например, increase-test-timeout или add-code-of-conduct. Дополнительные сведения см. в разделе Создание и удаление ветвей репозитория.

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

Внесение изменений

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

Ветвь — это безопасное место для внесения изменений. Если вы совершили ошибку, вы можете отменить изменения или отправить дополнительные изменения, чтобы исправить ее. Изменения не будут вноситься в ветвь по умолчанию, пока вы не выполните слияние.

Зафиксируйте и отправьте изменения в ветвь. Сопровождайте каждую фиксацию сообщением с описанием, чтобы помочь себе и будущим участникам понять, какие изменения она содержит. Например, fix typo или increase rate limit.

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

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

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

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

Создание запроса на включение изменений

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

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

текст запроса на вытягивание

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

комментарий к запросу на вытягивание

Репозиторий может настроить так, чтобы при создании запроса на вытягивание автоматически запрашивалась проверка у определенных команд или пользователей. Можно также вручную упомянуть (@mention) конкретных людей или команды или запросить у них проверку.

Если в репозитории настроены проверки для запросов на вытягивание, вы увидите все непройденные проверки для вашего запроса на вытягивание. Это помогает узнавать об ошибках перед слиянием ветви. Дополнительные сведения см. в разделе Сведения о проверках состояния.

Обработка комментариев рецензентов

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

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

Слияние запроса на вытягивание

После утверждения запроса на вытягивание выполните его слияние. Это приведет к автоматическому слиянию ветви, так что изменения отразятся в ветви по умолчанию. На GitHub ведется журнал комментариев и фиксаций в запросе на вытягивание, что помогает будущим участникам понять смысл изменений. Дополнительные сведения см. в разделе Слияние запроса на вытягивание.

GitHub сообщит, есть ли в запросе на вытягивание конфликты, которые необходимо разрешить перед слиянием. Дополнительные сведения см. в разделе Устранение конфликтов слияния.

Параметры защиты ветви могут блокировать слияние, если запрос на вытягивание не соответствует определенным требованиям. Например, может требоваться определенное количество утверждений или утверждение от определенной команды. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.

Удаление ветви

После слияния запроса на вытягивание удалите ветвь. Это означает, что работа с ветвью завершена, и предотвращает случайное использование старых ветвей вами или другими пользователями. Дополнительные сведения см. в разделе Удаление и восстановление ветвей в запросе на вытягивание.

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