{"meta":{"title":"Написание кода для проекта","intro":"Используйте ветви, вилки, фиксации и запросы на вытягивание для безопасной записи, уточнения и предложения изменений кода для совместных проектов.","product":"Запросы на включение внесенных изменений","breadcrumbs":[{"href":"/ru/pull-requests","title":"Запросы на включение внесенных изменений"},{"href":"/ru/pull-requests/concepts","title":"Concepts"},{"href":"/ru/pull-requests/concepts/writing-code-for-a-project","title":"Написание кода"}],"documentType":"article"},"body":"# Написание кода для проекта\n\nИспользуйте ветви, вилки, фиксации и запросы на вытягивание для безопасной записи, уточнения и предложения изменений кода для совместных проектов.\n\nКогда вы вносите свой вклад в проект, необходимо безопасное место для написания и уточнения кода, прежде чем он влияет на основную базу кода. Ветви, вилки, фиксации и запросы на вытягивание работают вместе, чтобы предоставить вам это пространство, чтобы вы могли экспериментировать, проверять работу постепенно и предлагать готовые изменения для проверки.\n\n## Изоляция работы с ветвями и вилками\n\nБольшая часть работы начинается с создания изолированной копии кода, которую можно свободно изменить.\n\n* Используйте **ветвь** при наличии доступа на запись к репозиторию. Ветвь позволяет разрабатывать функцию, устранять ошибку или экспериментировать в автономной области репозитория, не влияя на другие ветви. Вы создаете ветвь из существующей ветви, как правило, ветвь по умолчанию.\n* Используйте **вилку** , если у вас нет доступа на запись или если требуется полная независимость от исходного проекта. Вилка — это отдельный репозиторий, который предоставляет общий доступ к коду и параметрам видимости исходному репозиторию upstream. Он имеет собственные ветви, проблемы и запросы на вытягивание. С помощью вилки можно также открывать запросы на вытягивание для вышестоящего репозитория.\n\nВетвь обычно является самым простым выбором при совместной работе в общем репозитории. Вилку часто лучше всего подходит для открытый код вкладов, где у вас может не быть доступа на запись в вышестоящий репозиторий.\n\n## Проверка работы с фиксациями\n\nПри написании кода вы сохраняете небольшие, значимые группы изменений в виде **фиксаций**. Каждая фиксация записывает моментальный снимок вашей работы вместе с сообщением, описывающим изменение, что упрощает отслеживание журнала, просмотр изменений и понимание развития кода.\n\nЧасто фиксация в ветви или вилке позволяет:\n\n* Разорвать более крупное изменение в доступных для просмотра шагах.\n* Откат к предыдущему состоянию, если эксперимент не работает.\n* Предоставьте рецензентам четкую историю того, как вы прибыли на окончательное изменение.\n\n## Предложение изменений с запросами на вытягивание\n\nКогда ваша работа готова к совместному использованию, откройте **запрос на вытягивание** , чтобы предложить объединение изменений в базовую ветвь. Запрос на вытягивание объединяет фиксации, описание изменения, а рецензенты инструментов должны обсудить и оценить его перед слиянием.\n\nВы можете открыть запрос на вытягивание во время работы, создав черновик запроса на вытягивание, который предоставляет общий доступ к изменениям без официального запроса проверки. Это полезно, если требуется ранний отзыв или требуется выполнить автоматические проверки кода.\n\n## Сохранение текущего и оптимизированного кода\n\nПока запрос на вытягивание открыт, базовая ветвь может изменяться, так как другие пользователи объединяют свою работу. Чтобы сохранить изменения чистыми и сократить конфликты, вы можете:\n\n* Объединение или перебазируйте базовую ветвь в ветвь часто, чтобы ваш дифф оставался сосредоточенным на том, что ваше изменение вводит.\n  GitHub показывает трехточие дифф по умолчанию, который сравнивает ветвь с точкой, в которой она расходится от базы.\n* Перебазируйте, чтобы принудить журнал фиксации грязной фиксации — переупорядочение, объединение или повторную фиксацию перед запросом на проверку.\n* Разрешать конфликты слиянием, если Git не может автоматически объединять конкурирующие изменения.\n\n## Работа в элементах управления репозитория\n\nОпытные участники работают в пределах сторожевой границы, определяет репозиторий. Эти элементы управления определяют, где можно отправить запросы, которые должны утвердить работу и что необходимо передать перед слиянием.\n\n* **Защищенные ветви и наборы правил** могут блокировать прямые отправки в важные ветви, требовать линейную историю или подписанные фиксации, а также требовать проверки состояния или проверки перед слиянием.\n* **Владельцы кода** автоматически запрашиваются для проверки при изменении файлов, принадлежащих им, поэтому план их утверждения в конфиденциальных областях.\n* **Наборы правил push-уведомлений** могут применяться в сети вилки, ограничивая пути к файлам, размеры или имена в каждом вилке.\n* **Перехватчики предварительного получения** позволяют администраторам GitHub Enterprise Server применять проверки политики на сервере до принятия фиксаций.\n\n## Интегрированная цепочка инструментов\n\nЗапросы на вытягивание подключают код к службам автоматизации и службам, которые помогают быстро и безопасно писать код.\n\n***\n\nGitHub Copilot\n\\*\\* может помочь в написании, отладке и оптимизации кода.\n\n* **Code scanning** и **Dependabot** проблемы безопасности и уязвимые зависимости при переходе по запросу на вытягивание, поэтому вы можете применить безопасные методики написания кода рано.\n* **GitHub Actions** может выполнять непрерывную интеграцию при каждой отправке запроса на вытягивание, создавать и тестировать изменения автоматически.\n\n## Дополнительные материалы\n\n* [Создание запроса на включение изменений](/ru/pull-requests/how-tos/create-pull-requests/creating-a-pull-request)\n* [Быстрый старт для GitHub Copilot](/ru/copilot/get-started/quickstart)"}