Участие в проекте по GitHub является важным навыком для разработчиков и сотрудников, работающих вместе для достижения общих целей. Независимо от того, исправляете ли вы ошибки, добавляете функции или улучшаете документацию, процесс содействия обеспечивает структурированную и эффективную совместную работу.
Следуя потоку GitHub вилки репозиториев, созданию ветвей и отправке запросов на вытягивание, вы можете предлагать изменения в проекте и получать отзывы без нарушения работы других людей.
Это руководство содержит инструкции по вкладу в проект с использованием интерфейса GitHub и командной строки. Для получения дополнительной информации о вкладе в GitHub Desktop см. Клонирование и создание ветки для репозиториев из GitHub Desktop. То же самое с GitHub CLI (интерфейс командной строки) см. Быстрый старт GitHub CLI.
Сведения о вилках
Если вы хотите внести свой вклад в проект другого пользователя, но не имеет разрешения на внесение изменений напрямую, вы можете создать собственную копию проекта, внести обновления, а затем предложить эти обновления для включения в основной проект. Этот процесс часто называется рабочим процессом "вилки и запроса на вытягивание".
При создании собственной копии (или "вилки") проекта это похоже на создание новой рабочей области, которая использует код исходного проекта. Это полезно для проектов с открытым кодом или в любое время, когда у вас нет доступа на запись к исходному проекту.
После внесения изменений в копию вы можете отправить их в виде запроса на вытягивание, который является способом предложить изменения обратно в основной проект. Дополнительные сведения см. в разделе Вилка репозитория.
Создание собственной копии проекта
В этом руководстве используется проект Spoon-Knife, тестовый репозиторий, размещенный в GitHub, который позволяет протестировать рабочий процесс запроса на вилку и вытягивание.
-
Перейдите к проекту
Spoon-Knifeна https://github.com/octocat/Spoon-Knife. -
В правом верхнем углу страницы щелкните Вилка.

-
В разделе "Владелец" выберите раскрывающееся меню и щелкните владельца для вилированного репозитория.
Примечание.
Если ваше имя пользователя неактивно, это связано с тем, что вилку уже существует. Вместо этого необходимо обновить существующий вилку. Дополнительные сведения см. в разделе Синхронизация вилки.
-
По умолчанию вилки называются теми же, что и их вышестоящий репозиторий. При необходимости для дальнейшего отличия вилки в поле "Имя репозитория" введите имя.
-
При необходимости в поле "Описание" введите описание вилки.
-
При необходимости выберите " Копировать только ветвь DEFAULT".
Для многих сценариев разветвления, таких как участие в проектах с открытым кодом, необходимо скопировать только ветвь по умолчанию. Если этот параметр не выбран, все ветви будут скопированы в новую вилку.
-
Нажмите Создать вилку.
Примечание.
Если вы хотите скопировать дополнительные ветви из вышестоящего репозитория, это можно сделать на странице "Ветви ". Дополнительные сведения см. в разделе Создание и удаление ветвей в репозитории.
Клонирование вилки на компьютер
Вы успешно вилировали репозиторий Spoon-Knife, но до сих пор он существует только на GitHub. Для работы над проектом необходимо клонировать ее на свой компьютер.
Клонировать вилку можно с помощью командной строки, GitHub CLI или GitHub Desktop.
-
На сайте GitHubперейдите в вилку репозитория Spoon-Knife.
-
Над списком файлов щелкните Code.

-
Скопируйте URL-адрес репозитория.
-
Чтобы клонировать репозиторий с помощью HTTPS, в разделе "HTTPS" нажмите .
-
Чтобы клонировать репозиторий с помощью ключа SSH, включая сертификат, выданный центром сертификации SSH вашей организации, щелкните SSH, а затем щелкните .
-
Чтобы клонировать репозиторий с помощью GitHub CLI, щелкните GitHub CLI, а затем щелкните .

-
-
В Mac или Linux откройте терминал. В Windows откройте Git Bash.
-
Измените текущий рабочий каталог на расположение, где должен находиться клонированный каталог.
-
Введите
git clone, а затем вставьте URL-адрес, скопированный ранее. Это будет выглядеть следующим образом: вместо имени пользователя GitHub :YOUR-USERNAMEgit clone https://HOSTNAME/YOUR-USERNAME/Spoon-Knife -
Нажмите клавишу ВВОД. Будет создан локальный клон.
$ 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 и убедитесь, что в будущем будет проще внести свой вклад в тот же проект. См . раздел AUTOTITLE.
git branch BRANCH-NAME
git checkout BRANCH-NAME
Внесение и отправка изменений
Перейдите к проекту и внесите несколько изменений с помощью избранного текстового редактора, например Visual Studio Code. Например, можно изменить текст index.html , чтобы добавить имя пользователя GitHub .
Когда вы будете готовы отправить изменения, подготовьте и зафиксируйте их.
git add . сообщает GIT, что вы хотите включить все изменения в следующую фиксацию.
git commit создает моментальный снимок этих изменений.
git add .
git commit -m "a short description of the change"
Когда вы выполняете этап и фиксируете файлы, вы, по сути, говорите Git: "Создание моментального снимка моих изменений". Вы можете продолжать вносить дополнительные изменения и принимать дополнительные моментальные снимки фиксации.
На данный момент изменения существуют только локально. Когда вы будете готовы отправить изменения до GitHub, отправьте изменения в удаленный.
git push
Выполнение запроса на вытягивание
Создание запроса на вытягивание является последним шагом при создании вилки проекта другого пользователя. Когда вы внесли полезные изменения и хотите предложить его исходному репозиторию, вы создадите запрос на вытягивание для проверяющего.
Для этого перейдите в репозиторий на GitHub в том месте, где живет проект. В данном примере это будет https://github.com/<your_username>/Spoon-Knife. Вы увидите баннер с сообщением о том, что до слияния вашей ветви с octocat:main осталась одна фиксация. Щелкните Принять участие, а затем — Открыть запрос на вытягивание.
GitHub приведет вас на страницу, показывающую различия между вилкой и репозиторием octocat/Spoon-Knife . Нажмите "Создать pull request".
GitHub приведет вас на страницу, где можно ввести название и описание изменений. Очень важно предоставить как можно более подробную информацию и обоснование для запроса на вытягивание. Исходя из этого владелец проекта сможет решить, является ли ваше изменение таким полезным для всех, каким вы его считаете. Наконец, щелкните Создать запрос на вытягивание.