# Вилка репозитория

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

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

Создание вилки репозитория позволяет предлагать изменения в проекте, не затрагивая вышестоящий репозиторий. См [. раздел AUTOTITLE](/ru/pull-requests/get-started/about-forks).

## Необходимые условия

Если вы еще не сделали этого, настройте Git и проверку подлинности с GitHub.com помощью Git. См [. раздел AUTOTITLE](/ru/get-started/git-basics/set-up-git).

## Создание вилки репозитория

<div class="ghd-tool webui">

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

1. Войдите GitHubв репозиторий [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife).
2. В правом верхнем углу страницы щелкните **Вилка**.

   ![Снимок экрана: главная страница репозитория. Кнопка, помеченная значком вилки и "Вилкой 59,3k", описывается темно-оранжевым цветом.](/assets/images/help/repository/fork-button.png)
3. В разделе "Владелец" выберите раскрывающееся меню и щелкните владельца для вилированного репозитория.
4. По умолчанию вилки называются теми же, что и их вышестоящий репозиторий. При необходимости в поле "Имя репозитория" введите другое имя, чтобы отличить вилку.
5. При необходимости в поле "Описание" введите описание вилки.
6. При необходимости выберите " **Копировать только** ветвь DEFAULT".

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

> \[!NOTE]
> Если вы хотите скопировать дополнительные ветви из вышестоящего репозитория, это можно сделать на **странице "Ветви** ". См [. раздел AUTOTITLE](/ru/pull-requests/how-tos/commit-changes/managing-branches-within-your-repository).

</div>

<div class="ghd-tool cli">

> \[!NOTE]
> Дополнительные сведения о GitHub CLIсм. в разделе [О GitHub CLI](/ru/github-cli/github-cli/about-github-cli).

Чтобы создать вилку репозитория, используйте подкоманду `gh repo fork`.

```shell
gh repo fork REPOSITORY
```

Чтобы создать вилку в организации, используйте флаг `--org`.

```shell
gh repo fork REPOSITORY --org "octo-org"
```

</div>

<div class="ghd-tool desktop">

Вы можете вкрепить репозиторий в GitHub.com или в GitHub Desktop. Сведения о вилке GitHub.comсм. [в версии веб-браузера этой статьи](/ru/pull-requests/how-tos/work-with-forks/fork-a-repo?tool=webui).

В GitHub Desktop, если клонировать репозиторий, в который у вас нет доступа на запись, а затем попытаться отправить изменение в репозиторий, будет создан вилку.

1. В меню **Файл** щелкните **Клонировать репозиторий**.

   <div class="ghd-tool mac">

   ![Снимок экрана: строка меню на Компьютере Mac. Раскрывающееся меню "Файл" развернуто, а параметр "Клонировать репозиторий" выделен оранжевым контуром.](/assets/images/help/desktop/clone-file-menu-mac.png)

   </div>

   <div class="ghd-tool windows">

   ![Снимок экрана: строка меню "GitHub Desktop" в Windows. Раскрывающееся меню "Файл" развернуто, а параметр "Клонировать репозиторий" выделен оранжевым цветом.](/assets/images/help/desktop/clone-file-menu-windows.png)

   </div>

2. Щелкните вкладку, соответствующую расположению репозитория, который требуется клонировать. В этом примере щелкните вкладку URL-адреса.

   ![Снимок экрана: вкладка "URL-адрес" окна "Клонировать репозиторий". Вкладки "GitHub.com", "GitHub Enterprise" и "URL-адрес" представлены в темно-оранжевый цвет.](/assets/images/help/desktop/choose-repository-location-url-tab-windows.png)

3. Введите URL-адрес или путь репозитория, который требуется клонировать.

   ![Снимок экрана: вкладка "URL-адрес" окна "Клонировать репозиторий". Входные данные, содержащие "octocat/Spoon-Нож", выделены оранжевым контуром.](/assets/images/help/desktop/clone-a-repository-url-tab-name-input.png)

4. Чтобы выбрать локальный каталог, в который требуется клонировать репозиторий, рядом с полем "Локальный путь" нажмите кнопку " **Выбрать...** и перейдите к каталогу".

   ![Снимок экрана: вкладка "URL-адрес" окна "Клонировать репозиторий". Кнопка с надписью "Выбрать" выделена оранжевым контуром.](/assets/images/help/desktop/clone-choose-button-url-windows.png)

5. В нижней части окна "Клонировать репозиторий" нажмите кнопку **"Клонировать**".

6. Чтобы создать вилку, попытайтесь отправить изменение в репозиторий. Например, создайте новую ветвь и опубликуйте ее. Появится запрос на создание вилки этого репозитория.

   ![Снимок экрана: окно "Создание вилки запроса". Кнопка, помеченная как "Вилка этого репозитория", выделена оранжевым контуром.](/assets/images/help/desktop/create-fork-button-windows.png)

7. Ознакомьтесь с информацией в разделе "Как вы планируете использовать этот вилку?" интервалу времени.
   * Если вы планируете использовать эту вилку для участия в исходном вышестоящем репозитории, щелкните **Участие в родительском проекте**.
   * Если вы будете использовать эту вилку для проекта, не связанного с вышестоящим, щелкните **В своих целях**.

8. Нажмите кнопку **Продолжить**.

</div>

<div class="ghd-tool webui">

## Клонирование вилки репозитория

Теперь у вас есть вилка репозитория Spoon-Knife, но у вас нет файлов из этого репозитория на компьютере.

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. Откройте терминал или Git Bash.

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

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

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

7. Нажмите **Enter**. Git создает локальный клон.

   ```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.
   > remote: Total 10 (delta 1), reused 10 (delta 1)
   > Unpacking objects: 100% (10/10), done.
   ```

</div>

<div class="ghd-tool cli">

## Клонирование вилки репозитория

Теперь у вас есть вилка репозитория Spoon-Knife, но у вас нет файлов из этого репозитория на компьютере.

> \[!NOTE]
> Дополнительные сведения о GitHub CLIсм. в разделе [О GitHub CLI](/ru/github-cli/github-cli/about-github-cli).

Чтобы создать клон вилки, используйте флаг `--clone`.

```shell
gh repo fork REPOSITORY --clone=true
```

</div>

## Настройка Git для синхронизации вилки с вышестоящим репозиторием

При создании проекта для предложения изменений в вышестоящем репозитории вы можете настроить Git для извлечения изменений из вышестоящего репозитория в локальный клон вилки.

<div class="ghd-tool webui">

1. Войдите GitHubв репозиторий [octocat/Spoon-Knife](https://github.com/octocat/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. Откройте терминал или Git Bash.

5. Перейдите в каталог для клонированного клонированного вилки.
   * Чтобы перейти к домашнему каталогу, введите просто `cd` без дополнительного текста.
   * Чтобы получить список файлов и папок в текущем каталоге, введите `ls`.
   * Чтобы перейти в один из перечисленных каталогов, введите `cd YOUR-LISTED-DIRECTORY`.
   * Чтобы перейти на один каталог выше, введите `cd ..`.

6. Введите `git remote -v` и нажмите клавишу **Enter**. Сейчас вы увидите удаленный репозиторий, настроенный для вилки.

   ```shell
   $ git remote -v
   > origin  https://github.com/YOUR-USERNAME/YOUR-FORK.git (fetch)
   > origin  https://github.com/YOUR-USERNAME/YOUR-FORK.git (push)
   ```

7. Введите `git remote add upstream`, вставьте URL-адрес, скопированный на шаге 3, и нажмите клавишу **ВВОД**. Он будет выглядеть следующим образом.

   ```shell
   git remote add upstream https://github.com/ORIGINAL-OWNER/Spoon-Knife.git
   ```

8. Чтобы проверить новый вышестоящий репозиторий, указанный для вилки, введите `git remote -v` еще раз. Url-адрес для вилки должен отображаться как `origin` и URL-адрес для вышестоящего репозитория `upstream`.

   ```shell
   $ git remote -v
   > origin    https://github.com/YOUR-USERNAME/YOUR-FORK.git (fetch)
   > origin    https://github.com/YOUR-USERNAME/YOUR-FORK.git (push)
   > upstream  https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY.git (fetch)
   > upstream  https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY.git (push)
   ```

Теперь вы можете синхронизировать вилку с вышестоящим репозиторием с несколькими командами Git. См [. раздел AUTOTITLE](/ru/pull-requests/how-tos/work-with-forks/syncing-a-fork).

</div>

<div class="ghd-tool cli">

> \[!NOTE]
> Дополнительные сведения о GitHub CLIсм. в разделе [О GitHub CLI](/ru/github-cli/github-cli/about-github-cli).

Чтобы настроить удаленный репозиторий для вилки репозитория, используйте флаг `--remote`.

```shell
gh repo fork REPOSITORY --remote=true
```

Чтобы указать имя удаленного репозитория, используйте флаг `--remote-name`.

```shell
gh repo fork REPOSITORY --remote-name "main-remote-repo"
```

</div>

### Редактирование вилки

Вы можете вносить любые изменения в вилку, в том числе указанные ниже.

* **Создание ветвей.**[*Ветви*](/ru/pull-requests/how-tos/commit-changes/managing-branches-within-your-repository) позволяют создавать новые функции или проверять идеи, не подвергая риску главный проект.
* **Открытие запросов на вытягивание:** Если вы хотите внести свой вклад обратно в вышестоящий репозиторий, отправьте запрос на вытягивание, чтобы попросить исходного автора извлечь вилку в свой репозиторий. См [. раздел AUTOTITLE](/ru/pull-requests/how-tos/create-pull-requests/creating-a-pull-request-from-a-fork).

## Поиск репозитория для создания вилки

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

* Личная учетная запись
* В организацию, в которой у вас есть разрешение на создание репозиториев

Если у вас есть доступ к частному репозиторию, а владелец разрешает вилку, можно вилку репозитория:

* Личная учетная запись
* Организация на GitHub Team с разрешением на создание репозиториев

Создать вилку из частного репозитория к организации с помощью GitHub Free невозможно. Дополнительные сведения о GitHub Team и GitHub Freeсм. в разделе [Планы GitHub](/ru/get-started/learning-about-github/githubs-plans).

Дополнительные сведения о том, когда можно вкрепить репозиторий, см. в разделе [Вилки](/ru/pull-requests/reference/forks).

Вы можете просмотреть [обзорGitHub](https://github.com/explore), чтобы найти проекты и начать участие в открытый код репозиториях. См [. раздел AUTOTITLE](/ru/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github).

## Дальнейшие действия

Вы создали вилку репозитория, клонировали ее и настроили вышестоящий репозиторий.

* Дополнительные сведения об использовании Git в командной строке для клонирования и синхронизации изменений см. в разделе [Настройка Git](/ru/get-started/git-basics/set-up-git).

* Вы также можете создать новый репозиторий для хранения проектов и совместного использования кода GitHub. Создание репозитория для проекта позволяет хранить код на GitHub. Таким образом вы получаете резервную копию результатов работы, которую можно предоставить другим разработчикам. Дополнительные сведения см. в разделе [Краткое руководство по репозиториям](/ru/repositories/creating-and-managing-repositories/quickstart-for-repositories).

* Каждый репозиторий GitHub принадлежит человеку или организации. Вы можете взаимодействовать с людьми, репозиториями и организациями, подключаясь и следуя за ними GitHub. Дополнительные сведения см. в разделе [Обнаружение проектов на GitHub](/ru/get-started/exploring-projects-on-github/discovering-projects-on-github).

* У GitHub большое сообщество поддержки, где можно обратиться за помощью и поговорить с людьми со всего мира. Присоединиться к беседе можно в [GitHub Community](https://github.com/orgs/community/discussions).