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. В правом верхнем углу страницы щелкните Вилка. Кнопка fork
  3. Выберите владельца для ответвленного репозитория. Страница создания вилки с выделенным раскрывающимся списком владельца
  4. По умолчанию вилки называются так же, как и их вышестоящие репозитории. Вы можете изменить имя вилки, чтобы избежать путаницы. Страница создания вилки с выделенным полем имени репозитория
  5. При необходимости добавьте описание вилки. Создание страницы вилки с выделенным полем описания
  6. Выберите, следует ли копировать в новую вилку только ветвь по умолчанию или все ветви. Для многих сценариев разветвления, таких как участие в проектах с открытым кодом, необходимо скопировать только ветвь по умолчанию. По умолчанию копируется только ветвь по умолчанию. Возможность копирования только ветви по умолчанию
  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-адреса с целью клонирования репозитория с помощью GitHub CLI 1. Откройте ТерминалТерминалGIT Bash. 4. Измените текущий рабочий каталог на расположение, где должен находиться клонированный каталог.
  4. Введите git clone и вставьте URL-адрес, скопированный ранее. Он будет выглядеть следующим образом с вашим именем пользователя GitHub Enterprise Cloud вместо 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-адреса с целью клонирования репозитория с помощью GitHub CLI 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.com, где у вас есть разрешение на создание репозиториев, при условии, что параметры репозитория и корпоративные политики разрешают разветвления. Как правило, вы можете создать вилку любого общедоступного репозитория для личной учетной записи или организации, у которой есть разрешение на создание репозиториев, если вы не являетесь участником корпоративный с управляемыми пользователями.

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

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

Next Steps

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

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

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

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

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