Как правильно создать форк репозитория Github — CloudSavvy IT

Программирование с открытым исходным кодом — это возможность вносить свои собственные изменения в код, написанный другими. Для этого вы должны отделиться от основного репозитория, что обычно называется «разветвлением» репозитория, но это может быть сложно, если вы не сделаете это должным образом.

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

Форкинг из Github

Если вы используете Github, самый простой способ разветвить репозиторий — это нажать кнопку «Разветвить», что автоматически создаст новый репозиторий в вашей учетной записи и настроит пульты, когда вы его клонируете. Это также заставит его отображаться на вкладке «разветвления» исходного репо, а в вашем репо будет отображаться как «разветвленный из X».

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

Если вы клонируете его самостоятельно, убедитесь, что клонировали репозиторий правильно, а не выполняли операцию «Загрузить ZIP». Если вы не клонируете его через Git, он не будет копировать историю версий и не будет настроен как репозиторий Git.

Настройка Upstream Remote для Fork

Если вы разделили репозиторий с веб-сайта Github, исходный пульт будет указывать на вашу вилку. Однако также полезно иметь возможность извлекать из исходного репозитория, называемого «исходным». Если они внесут изменения, вы, вероятно, захотите выполнить слияние или переустановку с вышестоящим пультом.

В Github есть встроенные инструменты, позволяющие делать это автоматически, поэтому вам не нужно выполнять эту часть, но если вы хотите использовать инструменты CLI, вам нужно будет добавить обратно исходное репо в качестве удаленного под названием «upstream»:

git remote добавить вверх по течению https://github.com/author/original.git

Форкинг из Git CLI

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

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

git удаленное переименование источника вверх по течению

А затем добавьте свой собственный пульт в качестве нового «источника», который вам, вероятно, придется сделать вручную, если вы планируете отправить его обратно в Github:

git удаленное добавление источника https://github.com/author/ForkName

Как только это будет сделано, вам, вероятно, потребуется установить пульт по умолчанию для каждой ветки вашей вилки:

git branch —set-upstream-to origin

И нажмите на источник, который загрузит файлы в ваш новый репозиторий.

Обновление с новыми изменениями

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

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

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

git fetch upstream git checkout master git rebase upstream / master

После этого вам может потребоваться принудительное нажатие, если это происходит в первый раз:

git push -f origin master

Выполнение запросов на извлечение

Если вы разветвлялись с Github, это тоже несложно. Вы можете просто нажать «Contribute», и он автоматически откроет запрос на вытягивание.

В противном случае процесс по-прежнему прост. Перейдите в вышестоящий репозиторий и на вкладке «Pull Requests» выберите «New Pull Request».

Затем вам нужно будет выбрать «сравнить по вилкам» и найти репозиторий вилок. Выберите ветви, которые вы хотите объединить, и нажмите «Создать запрос на вытягивание».

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *