The Wayback Machine - https://web.archive.org/web/20230117162832/https://docs.github.com/ru/get-started/quickstart/contributing-to-projects
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. Для работы над проектом необходимо клонировать ее на свой компьютер.

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

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

    Параметр меню «Клонировать» в приложении Windows

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

    Вкладки "Расположение" в меню "Клонировать репозиторий"

    Вкладки "Расположение" в меню "Клонировать репозиторий"

    1. Выберите в списке репозиторий, который нужно клонировать.

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

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

    1. Нажмите кнопку **Выбрать...** и перейдите к локальной папке, в которую нужно клонировать репозиторий.

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

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

    1. Щелкните **Клонировать**.

    Кнопка "Клонировать"

    Кнопка "Клонировать"

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

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

git push
git push

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

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

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

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

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

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

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

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

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

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