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

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

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

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

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

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

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

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

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

  1. Перейдите к проекту Spoon-Knife по адресу https://github.com/octocat/Spoon-Knife.

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

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

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

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

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

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

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

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

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

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

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

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

  1. На GitHub перейдите к своей вилке репозитория 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.
    > 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 и гарантируете, что в будущем будет проще вносить свой вклад в тот же проект. Дополнительные сведения см. в разделе GitHub Flow.

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

Дополнительные сведения о создании ветвей и управлении ими в GitHub Desktop см. в разделе Управление ветвями в 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 см. в разделе Фиксация и просмотр изменений в проекте в GitHub Desktop.

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

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

git push
git push

Дополнительные сведения о том, как отправлять изменения в GitHub Desktop, см. в разделе Pushing changes to GitHub from GitHub Desktop.

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

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

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

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

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

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

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

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

Вы успешно создали вилку и внесли свой вклад в репозиторий. Идите вперед и внести свой вклад еще! Дополнительные сведения см. в разделе Поиск способов для участия в разработке программного обеспечения с открытым кодом в GitHub.