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

Ветвление репозитория

Вилка — это новый репозиторий, который совместно использует параметры кода и видимости с исходным репозиторием "вышестоящий".

О вилках

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

Предложение изменений в проект другого пользователя

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

  • Создайте вилку репозитория.
  • Внесите исправление.
  • Отправьте запрос на вытягивание владельцу проекта.

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

Программное обеспечение с открытым кодом строится на той идее, что, предоставляя общий доступ к коду, мы можем создавать более надежное и эффективное ПО. Дополнительные сведения см. в этом разделе на сайте Open Source Initiative.

Дополнительные сведения о применении принципов открытый код к работе по разработке в вашей организации в GitHub.com см. в техническом документе GitHub "Введение в innersource".

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

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

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

Если вы еще не сделали этого, сначала настройте Git и проверку подлинности с помощью GitHub.com из Git. Дополнительные сведения см. в разделе Настройка Git.

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

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

  1. На GitHub.comперейдите в репозиторий octocat/Spoon-Knife .

  2. В правом верхнем углу страницы щелкните Вилка.

    Снимок экрана: страница main репозитория. Кнопка со значком вилки и надписью "Вилка 59,3k" выделена темно-оранжевым цветом.

  3. В разделе "Владелец" выберите раскрывающееся меню и щелкните владельца вилки репозитория.

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

  5. При необходимости в поле "Описание" введите описание вилки.

  6. При необходимости выберите Копировать только ветвь DEFAULT.

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

  7. Нажмите Создать вилку.

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

Дополнительные сведения о GitHub CLI см. в разделе Сведения о GitHub CLI.

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

gh repo fork REPOSITORY

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

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

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

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

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

    Снимок экрана: строка меню на компьютере Mac. Раскрывающееся меню "Файл" будет развернуто, а параметр "Клонировать репозиторий" выделен оранжевым контуром.

    Снимок экрана: строка меню "GitHub Desktop" в Windows. Раскрывающееся меню "Файл" будет развернуто, а параметр "Клонировать репозиторий" выделен оранжевым контуром.

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

    Снимок экрана: окно "Клонирование репозитория". В верхней части окна вкладки с метками "GitHub.com", "GitHub Enterprise" и "URL-адрес" выделены оранжевым контуром. 1. В списке репозиториев щелкните репозиторий, который нужно клонировать.

    Снимок экрана: окно "Клонирование репозитория". Репозиторий github/docs выделен оранжевым контуром. 1. Чтобы выбрать локальный каталог, в который требуется клонировать репозиторий, рядом с полем "Локальный путь" щелкните Выбрать... и перейдите в каталог.

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

    Кнопка «Выбрать».

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

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

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

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

  2. Над списком файлов щелкните Код. Снимок экрана: список файлов на целевой странице репозитория. Кнопка "Код" выделена темно-оранжевым контуром.

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

    • Чтобы клонировать репозиторий по протоколу HTTPS, в разделе "HTTPS" щелкните .

    • Чтобы клонировать репозиторий с помощью ключа SSH, включая сертификат, выданный центром сертификации SSH вашей организации, щелкните SSH, а затем выберите .

    • Чтобы клонировать репозиторий с помощью GitHub CLI, щелкните GitHub CLI, а затем выберите .

      Снимок экрана: раскрывающееся меню "Код". Справа от URL-адреса HTTPS для репозитория значок копирования выделен темно-оранжевым цветом. 1. Откройте ТерминалТерминалGIT Bash. 4. Измените текущий рабочий каталог на расположение, где должен находиться клонированный каталог.

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

    $ git clone https://github.com/YOUR-USERNAME/Spoon-Knife
  5. Нажмите клавишу ВВОД. Будет создан локальный клон.

    $ 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.

Дополнительные сведения о GitHub CLI см. в разделе Сведения о GitHub CLI.

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

gh repo fork REPOSITORY --clone=true
  1. В меню Файл щелкните Клонировать репозиторий.

    Снимок экрана: строка меню на компьютере Mac. Раскрывающееся меню "Файл" будет развернуто, а параметр "Клонировать репозиторий" выделен оранжевым контуром.

    Снимок экрана: строка меню "GitHub Desktop" в Windows. Раскрывающееся меню "Файл" будет развернуто, а параметр "Клонировать репозиторий" выделен оранжевым контуром.

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

    Снимок экрана: окно "Клонирование репозитория". В верхней части окна вкладки с метками "GitHub.com", "GitHub Enterprise" и "URL-адрес" выделены оранжевым контуром. 1. В списке репозиториев щелкните репозиторий, который нужно клонировать.

    Снимок экрана: окно "Клонирование репозитория". Репозиторий github/docs выделен оранжевым контуром. 1. Чтобы выбрать локальный каталог, в который требуется клонировать репозиторий, рядом с полем "Локальный путь" щелкните Выбрать... и перейдите в каталог.

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

    Кнопка «Выбрать».

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

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

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

  1. На GitHub.comперейдите в репозиторий octocat/Spoon-Knife .

  2. Над списком файлов щелкните Код. Снимок экрана: список файлов на целевой странице репозитория. Кнопка "Код" выделена темно-оранжевым контуром.

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

    • Чтобы клонировать репозиторий по протоколу HTTPS, в разделе "HTTPS" щелкните .

    • Чтобы клонировать репозиторий с помощью ключа SSH, включая сертификат, выданный центром сертификации SSH вашей организации, щелкните SSH, а затем выберите .

    • Чтобы клонировать репозиторий с помощью GitHub CLI, щелкните GitHub CLI, а затем выберите .

      Снимок экрана: раскрывающееся меню "Код". Справа от URL-адреса HTTPS для репозитория значок копирования выделен темно-оранжевым цветом. 1. Откройте ТерминалТерминалGIT Bash.

  4. Измените каталоги на расположение клонированной вилки.

    • Чтобы перейти к домашнему каталогу, введите просто cd без дополнительного текста.
    • Чтобы получить список файлов и папок в текущем каталоге, введите ls.
    • Чтобы перейти в один из перечисленных каталогов, введите cd your_listed_directory.
    • Чтобы перейти на один каталог выше, введите cd ...
  5. Введите git remote -v и нажмите клавишу ВВОД. Вы увидите текущий настроенный удаленный репозиторий для вилки.

    $ git remote -v
    > origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
    > origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
  6. Введите git remote add upstream, вставьте URL-адрес, скопированный на шаге 3, и нажмите клавишу Enter. Он будет выглядеть следующим образом.

    $ git remote add upstream https://github.com/ORIGINAL_OWNER/Spoon-Knife.git
  7. Чтобы проверить новый вышестоящий репозиторий, указанный для вилки, введите git remote -v еще раз. Url-адрес вилки должен отображаться как origin, а URL-адрес репозитория вышестоящий как upstream.

    $ 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. Дополнительные сведения см. в разделе Синхронизация вилки.

Дополнительные сведения о GitHub CLI см. в разделе Сведения о GitHub CLI.

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

gh repo fork REPOSITORY --remote=true

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

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

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

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

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

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

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

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

Next Steps

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

  • Дополнительные сведения о клонировании вилки и синхронизации изменений в вилке репозитория с компьютера см. в разделе Настройка Git.

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

  • Каждый репозиторий на GitHub принадлежит пользователю или организации. Вы можете взаимодействовать с людьми, репозиториями и организациями, подписавшись на них на GitHub. Дополнительные сведения см. в разделе Налаживание социальных связей.

  • У GitHub большое сообщество поддержки, где можно обратиться за помощью и поговорить с людьми со всего мира. Присоединиться к беседе можно в GitHub Community.