Сведения о вилках
Если вы хотите внести свой вклад в чужой проект, но у вас нет доступа на запись к репозиторию, можно использовать рабочий процесс "вилка и запрос на вытягивание".
Вилка — это новый репозиторий, который совместно использует параметры кода и видимости с исходным "вышестоящим" репозиторием. Вилки часто используются для итерации идей или изменений, прежде чем они будут предложены в вышестоящем репозитории, например в проектах открытый код или когда у пользователя нет доступа на запись в вышестоящий репозиторий.
Вы можете внести свой вклад, отправив запросы на вытягивание из вилки в вышестоящий репозиторий. Дополнительные сведения см. в разделе Ветвление репозитория.
Создание вилки репозитория
В этом руководстве используется проект Spoon-Knife, тестовый репозиторий, размещенный на GitHub.com и позволяющий опробовать рабочий процесс создания вилок и запросов на вытягивание.
- Перейдите к проекту
Spoon-Knife
по адресу https://github.com/octocat/Spoon-Knife. - Нажмите кнопку Вилка.
fork - Выберите владельца для ответвленного репозитория.
- По умолчанию вилки называются так же, как и их вышестоящие репозитории. Вы можете изменить имя вилки, чтобы избежать путаницы.
- При необходимости добавьте описание вилки.
- Выберите, следует ли копировать в новую вилку только ветвь по умолчанию или все ветви. Для многих сценариев разветвления, таких как участие в проектах с открытым кодом, необходимо скопировать только ветвь по умолчанию. По умолчанию копируется только ветвь по умолчанию.
- Нажмите Создать вилку.
Примечание: Если вы хотите скопировать дополнительные ветви из вышестоящего репозитория, это можно сделать на странице Ветви . Дополнительные сведения см. в разделе Создание и удаление ветвей в репозитории.
Клонирование вилки
Вы успешно создали вилку репозитория Spoon-Knife, но пока она существует только на GitHub Enterprise Cloud. Для работы над проектом необходимо клонировать ее на свой компьютер.
Клонировать вилку можно с помощью командной строки, GitHub CLI или GitHub Desktop.
-
На GitHub Enterprise Cloud перейдите к своей вилке репозитория Spoon-Knife.
-
Над списком файлов щелкните Код.
-
Скопируйте URL-адрес репозитория.
- Чтобы клонировать репозиторий с использованием HTTPS, в разделе "HTTPS" щелкните .
- Чтобы клонировать репозиторий с использованием ключа SSH и включить сертификат, выданный центром сертификации SSH вашей организации, щелкните SSH, а затем щелкните .
- Чтобы клонировать репозиторий с помощью GitHub CLI, щелкните GitHub CLI , а затем щелкните .
1. Откройте ТерминалТерминалGIT Bash. 4. Измените текущий рабочий каталог на расположение, где должен находиться клонированный каталог.
-
Введите
git clone
и вставьте URL-адрес, скопированный ранее. Он будет выглядеть следующим образом с вашим именем пользователя GitHub Enterprise Cloud вместоYOUR-USERNAME
:$ git clone https://github.com/YOUR-USERNAME/Spoon-Knife
-
Нажмите клавишу ВВОД. Будет создан локальный клон.
$ 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. В списке репозиториев щелкните репозиторий, который нужно клонировать. 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 Cloud, отправьте их в удаленный репозиторий.
git push
git push
Дополнительные сведения о том, как отправлять изменения в GitHub Desktop, см. в разделе Отправка изменений в GitHub.
Выполнение запроса на вытягивание
Наконец, вы готовы предложить изменения для основного проекта. Это последний этап работы с вилкой чужого проекта, и, пожалуй, самый важный. Если вы внесли изменение, которое, как вам кажется, принесет пользу всему сообществу, определенно стоит подумать о том, чтобы поделиться им.
Для этого перейдите к репозиторию на GitHub Enterprise Cloud, где находится проект. В данном примере это будет https://github.com/<your_username>/Spoon-Knife
. Вы увидите баннер с сообщением о том, что до слияния вашей ветви с octocat:main
осталась одна фиксация. Щелкните Принять участие, а затем — Открыть запрос на вытягивание.
На GitHub Enterprise Cloud откроется страница с различиями между вашей вилкой и репозиторием octocat/Spoon-Knife
. Щелкните Создать запрос на вытягивание.
GitHub Enterprise Cloud перенаправит вас на страницу, где можно ввести заголовок и описание изменений. Очень важно предоставить как можно более подробную информацию и обоснование для запроса на вытягивание. Исходя из этого владелец проекта сможет решить, является ли ваше изменение таким полезным для всех, каким вы его считаете. Наконец, щелкните Создать запрос на вытягивание.
Управление отзывами
Запросы на вытягивание открыты для обсуждения. Над проектом Octocat ведется очень активная работа, поэтому, вероятно, ваши изменения не будут добавлены. В случае с другими проектами не обижайтесь, если владелец проекта отклонит ваш запрос на вытягивание или запросит дополнительные сведения о его причинах. Возможно даже, что владелец проекта решит не выполнять слияние вашего запроса на вытягивание, и это вполне нормально. Изменения существуют в вилке. Но кто знает, может быть, кому-нибудь когда-нибудь ваши изменения покажутся гораздо более ценными, чем исходный проект.
Поиск проектов
Вы успешно создали вилку и внесли свой вклад в репозиторий. Идите вперед, и внесете свой вклад еще!