# Участие в проекте

Узнайте, как внести свой вклад в проект с помощью создания вилок.

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

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

Это руководство содержит инструкции по вкладу в проект с использованием интерфейса GitHub и командной строки. Для получения дополнительной информации о вкладе в GitHub Desktop см. [Клонирование и создание ветки для репозиториев из GitHub Desktop](/ru/desktop/adding-and-cloning-repositories/cloning-and-forking-repositories-from-github-desktop). То же самое с GitHub CLI (интерфейс командной строки) см. [Быстрый старт GitHub CLI](/ru/github-cli/github-cli/quickstart).

## Сведения о вилках

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

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

После внесения изменений в копию вы можете отправить их в виде запроса на вытягивание, который является способом предложить изменения обратно в основной проект. Дополнительные сведения см. в разделе [Вилка репозитория](/ru/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo).

## Создание собственной копии проекта

В этом руководстве используется [проект](https://github.com/octocat/Spoon-Knife) Spoon-Knife, тестовый репозиторий, размещенный в GitHub, который позволяет протестировать рабочий процесс запроса на вилку и вытягивание.

1. Перейдите к проекту `Spoon-Knife` на <https://github.com/octocat/Spoon-Knife>.
2. В правом верхнем углу страницы щелкните **Вилка**.

   ![Снимок экрана: главная страница репозитория. Кнопка, помеченная значком вилки и "Вилкой 59,3k", описывается темно-оранжевым цветом.](/assets/images/help/repository/fork-button.png)
3. В разделе "Владелец" выберите раскрывающееся меню и щелкните владельца для вилированного репозитория.
   > \[!NOTE] Если ваше имя пользователя неактивно, это связано с тем, что вилку уже существует. Вместо этого необходимо обновить существующий вилку. Дополнительные сведения см. в разделе [Syncing a fork](/ru/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork#syncing-a-fork-branch-from-the-web-ui).
4. По умолчанию вилки называются теми же, что и их вышестоящий репозиторий. При необходимости для дальнейшего отличия вилки в поле "Имя репозитория" введите имя.
5. При необходимости в поле "Описание" введите описание вилки.
6. При необходимости выберите " **Копировать только** ветвь DEFAULT".

   Для многих сценариев разветвления, таких как участие в проектах с открытым кодом, необходимо скопировать только ветвь по умолчанию. Если этот параметр не выбран, все ветви будут скопированы в новую вилку.
7. Нажмите **Создать вилку**.

> \[!NOTE]
> Если вы хотите скопировать дополнительные ветви из вышестоящего репозитория, это можно сделать на **странице "Ветви** ". Дополнительные сведения см. в разделе [Managing branches within your repository](/ru/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository).

## Клонирование вилки на компьютер

Вы успешно вилировали репозиторий Spoon-Knife, но до сих пор он существует только на GitHub. Для работы над проектом необходимо клонировать ее на свой компьютер.

Клонировать вилку можно с помощью командной строки, GitHub CLI или GitHub Desktop.

1. На сайте GitHubперейдите в **вилку** репозитория Spoon-Knife.

2. Над списком файлов щелкните **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Code**.

   ![Снимок экрана: список файлов на целевой странице репозитория. Кнопка "Код" выделена темно-оранжевым контуром.](/assets/images/help/repository/code-button.png)

3. Скопируйте URL-адрес репозитория.

   * Чтобы клонировать репозиторий с помощью HTTPS, в разделе "HTTPS" нажмите <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>.
   * Чтобы клонировать репозиторий с помощью ключа SSH, включая сертификат, выданный центром сертификации SSH вашей организации, щелкните **SSH**, а затем щелкните <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code icon" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg>.
   * Чтобы клонировать репозиторий с помощью GitHub CLI, щелкните **GitHub CLI**, а затем щелкните <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>.

     ![Снимок экрана: раскрывающееся меню "Код". Справа от URL-адреса HTTPS для репозитория значок копирования описывается темно-оранжевым цветом.](/assets/images/help/repository/https-url-clone-cli.png)

4. В Mac или Linux откройте терминал. В Windows откройте Git Bash.

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

6. Введите `git clone`, а затем вставьте URL-адрес, скопированный ранее. Это будет выглядеть следующим образом: вместо имени пользователя GitHub :`YOUR-USERNAME`

   ```shell
   git clone https://github.com/YOUR-USERNAME/Spoon-Knife
   ```

7. Нажмите клавишу **ВВОД**. Будет создан локальный клон.

   ```shell
   $ git clone https://github.com/YOUR-USERNAME/Spoon-Knife
   > Cloning into `Spoon-Knife`...
   > remote: Counting objects: 10, done.
   > remote: Compressing objects: 100% (8/8), done.
   > remove: Total 10 (delta 1), reused 10 (delta 1)
   > Unpacking objects: 100% (10/10), done.
   ```

## Создание ветви для работы

Перед внесением изменений в проект необходимо создать новую ветвь и проверить ее. Сохраняя изменения в собственной ветви, вы следуйте потоку GitHub и убедитесь, что в будущем будет проще внести свой вклад в тот же проект. См [. раздел AUTOTITLE](/ru/get-started/using-github/github-flow#following-github-flow).

```shell
git branch BRANCH-NAME
git checkout BRANCH-NAME
```

## Внесение и отправка изменений

Перейдите к проекту и внесите несколько изменений с помощью избранного текстового редактора, например [Visual Studio Code](https://code.visualstudio.com). Например, можно изменить текст `index.html` , чтобы добавить имя пользователя GitHub .

Когда вы будете готовы отправить изменения, подготовьте и зафиксируйте их.
`git add .` сообщает GIT, что вы хотите включить все изменения в следующую фиксацию.
`git commit` создает моментальный снимок этих изменений.

```shell
git add .
git commit -m "a short description of the change"
```

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

На данный момент изменения существуют только локально. Когда вы будете готовы отправить изменения до GitHub, отправьте изменения в удаленный.

```shell
git push
```

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

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

Для этого перейдите в репозиторий на GitHub в том месте, где живет проект. В данном примере это будет `https://github.com/<your_username>/Spoon-Knife`. Вы увидите баннер с сообщением о том, что до слияния вашей ветви с `octocat:main` осталась одна фиксация. Щелкните **Принять участие**, а затем — **Открыть запрос на вытягивание**.

GitHub приведет вас на страницу, показывающую различия между вилкой и репозиторием `octocat/Spoon-Knife` . Нажмите **"Создать pull request"**.

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

## Знакомство с проектом

Если вы не знакомы с проектом, вы можете использовать Copilot для понимания цели репозитория, изучения файлов и изучения конкретных строк кода. См. [Использование GitHub Copilot для исследования проектов](/ru/get-started/exploring-projects-on-github/using-github-copilot-to-explore-projects).