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

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

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

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

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

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

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

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

В этом руководстве используется проект Spoon-Knife, тестовый репозиторий, размещенный на GitHub.com и позволяющий опробовать рабочий процесс создания вилок и запросов на вытягивание.

  1. Перейдите к проекту Spoon-Knife по адресу https://github.com/octocat/Spoon-Knife.
  2. Нажмите кнопку Вилка. Кнопка fork
  3. Выберите владельца для ответвленного репозитория. Страница создания вилки с выделенным раскрывающимся списком владельца
  4. По умолчанию вилки называются так же, как и их вышестоящие репозитории. Вы можете изменить имя вилки, чтобы избежать путаницы. Страница создания вилки с выделенным полем имени репозитория
  5. При необходимости добавьте описание вилки. Страница создания вилки с выделенным полем описания
  6. Выберите, следует ли копировать в новую вилку только ветвь по умолчанию или все ветви. Для многих сценариев разветвления, таких как участие в проектах с открытым кодом, необходимо скопировать только ветвь по умолчанию. По умолчанию копируется только ветвь по умолчанию. Вариант копирования только ветви по умолчанию
  7. Нажмите Создать вилку. Выделенная кнопка создания вилки

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

Клонирование вилки

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

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

  1. На GitHub Enterprise Server перейдите к своей вилке репозитория 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 Server вместо YOUR-USERNAME:

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

    $ git clone https://HOSTNAME/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 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. В нижней части окна "Клонировать репозиторий" щелкните **Клонировать**.

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

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

git branch BRANCH-NAME
git checkout BRANCH-NAME
git branch BRANCH-NAME
git checkout BRANCH-NAME

Дополнительные сведения о создании ветвей и управлении ими в GitHub Desktop см. в разделе Управление ветвями.

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

Внесите несколько изменений в проект в любимом текстовом редакторе, например Visual Studio Code. Например, можно изменить текст в файле index.html, добавив свое имя пользователя GitHub.

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

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

Дополнительные сведения о том, как подготовить и зафиксировать изменения в GitHub Desktop, см. в разделе Фиксация и проверка изменений в проекте.

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

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

git push
git push

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

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

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

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

На GitHub Enterprise Server откроется страница с различиями между вашей вилкой и репозиторием octocat/Spoon-Knife. Щелкните Создать запрос на вытягивание.

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

Управление отзывами

Запросы на вытягивание открыты для обсуждения. Над проектом Octocat ведется очень активная работа, поэтому, вероятно, ваши изменения не будут добавлены. В случае с другими проектами не обижайтесь, если владелец проекта отклонит ваш запрос на вытягивание или запросит дополнительные сведения о его причинах. Возможно даже, что владелец проекта решит не выполнять слияние вашего запроса на вытягивание, и это вполне нормально. Изменения существуют в вилке. Но кто знает, может быть, кому-нибудь когда-нибудь ваши изменения покажутся гораздо более ценными, чем исходный проект.

Поиск проектов

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