Skip to main content

Написание кода для проекта

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

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

Изоляция работы с ветвями и вилками

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

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

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

Проверка работы с фиксациями

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

Часто фиксация в ветви или вилке позволяет:

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

Предложение изменений с запросами на вытягивание

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

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

Сохранение текущего и оптимизированного кода

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

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

Работа в элементах управления репозитория

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

  • Защищенные ветви и наборы правил могут блокировать прямые отправки в важные ветви, требовать линейную историю или подписанные фиксации, а также требовать проверки состояния или проверки перед слиянием.
  • Владельцы кода автоматически запрашиваются для проверки при изменении файлов, принадлежащих им, поэтому план их утверждения в конфиденциальных областях.
  • Наборы правил push-уведомлений могут применяться в сети вилки, ограничивая пути к файлам, размеры или имена в каждом вилке.
  • Перехватчики предварительного получения позволяют администраторам GitHub Enterprise Server применять проверки политики на сервере до принятия фиксаций.

Интегрированная цепочка инструментов

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

  • Code scanning и Dependabot проблемы безопасности и уязвимые зависимости при переходе по запросу на вытягивание, поэтому вы можете применить безопасные методики написания кода рано.
  • GitHub Actions может выполнять непрерывную интеграцию при каждой отправке запроса на вытягивание, создавать и тестировать изменения автоматически.

Дополнительные материалы