Skip to main content

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

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

Platform navigation

Tool navigation

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

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

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

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

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

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

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

Для получения дополнительной информации о применении open source принципов к работе вашей организации по разработке GitHub см. белую книгу GitHub Введение в innersource.

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

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

Необходимые компоненты

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

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

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

  1. На GitHub, перейдите к репозиторию octocat/Spoon-Knife .

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

    Снимок экрана: главная страница репозитория. Кнопка, помеченная значком вилки и "Вилкой 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. Раскрывающееся меню "Файл" развернуто, а параметр "Клонировать репозиторий" выделен оранжевым цветом.

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

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

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

    Снимок экрана: вкладка "URL-адрес" окна "Клонировать репозиторий". Входные данные, содержащие "octocat/Spoon-Нож", выделены оранжевым контуром.

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

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

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

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

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

  7. Ознакомьтесь с информацией в разделе "Как вы планируете использовать этот вилку?" интервалу времени.

    • Если вы планируете использовать эту вилку для участия в исходном вышестоящем репозитории, щелкните Участие в родительском проекте.
    • Если вы будете использовать эту вилку для проекта, не связанного с вышестоящим, щелкните В своих целях.
  8. Нажмите кнопку Продолжить.

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

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

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

  2. Над списком файлов щелкните Code.

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

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

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

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

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

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

  4. Откройте ТерминалТерминалGIT Bash.

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

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

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

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

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

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

Примечание.

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

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

gh repo fork REPOSITORY --clone=true

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

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

  1. На GitHub, перейдите к репозиторию octocat/Spoon-Knife .

  2. Над списком файлов щелкните Code.

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

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

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

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

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

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

  4. Откройте ТерминалТерминалGIT Bash.

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

    • Чтобы перейти к домашнему каталогу, введите просто cd без дополнительного текста.
    • Чтобы получить список файлов и папок в текущем каталоге, введите ls.
    • Чтобы перейти в один из перечисленных каталогов, введите cd YOUR-LISTED-DIRECTORY.
    • Чтобы перейти на один каталог выше, введите cd ...
  6. Введите 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)
    
  7. Введите git remote add upstream, вставьте URL-адрес, скопированный на шаге 3, и нажмите клавишу Enter. Он будет выглядеть следующим образом.

    git remote add upstream https://github.com/ORIGINAL-OWNER/Spoon-Knife.git
    
  8. Чтобы проверить новый вышестоящий репозиторий, указанный для вилки, введите 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. Дополнительные сведения о том, когда можно вкрепить репозиторий, см. в разделе Сведения о разрешениях и видимости вилок.

Вы можете просматривать Explore GitHub, чтобы найти проекты и начать вносить вклад в open source репозитории. Дополнительные сведения см. в разделе Поиск способов внести вклад в open source на GitHub.

Следующие шаги

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

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

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

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

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