Давайте предположим, что someone/foobar
на GitHub есть репозиторий , который я разветвил me/foobar
.
Как вытащить новые коммиты из родительского репозитория непосредственно на мой форк , не добавляя отдельный пульт и не забывая регулярно получать оттуда ?
Цель состоит в том, чтобы:
git pull
извлечь из родительского хранилищаgit push
отправить все на мою развилку
Ответы:
Откройте раздвоенный Git-репозиторий me / foobar .
Нажмите на Сравнить :
Вы получите уведомление:
Нажмите на переключение базы на этой странице:
Затем вы увидите все коммиты, сделанные кому-то / foobar после дня, когда вы его разветвили.
Нажмите на Создать запрос на извлечение :
Укажите для pull-запроса заголовок и, возможно, описание, и нажмите « Создать pull-запрос» .
На следующей странице перейдите к нижней части страницы и нажмите « Слить запрос на выборку» и « Подтвердить слияние» .
Ваш Git-репозиторий me / foobar будет обновлен.
Изменить: параметры перебазирования показаны здесь:
источник
Edit
кнопку и вручную переключитьbase fork
наme/foobar
иhead fork
наsomeone/foobar
. Таким образом , это много ясноОднако есть одно предостережение:
это идеально, если вы единственный, кто вносит изменения в свой форк.
Однако, если им сообщают другие люди, вам, возможно, придется оторваться от вилки, и в этом случае отдельный пульт является единственным решением.
Изменить:
На самом деле, вы можете
git pull git@github.com:me/foobar
, который удаляет предупреждение.Выбор за вами, который легче запомнить.
источник
Для этого я использовал довольно простой метод с использованием веб-интерфейса GitHub :
me/foobar
)источник
Приложение "Pull" - это решение для автоматической настройки и забывания. Он будет синхронизировать ветку по умолчанию вашего форка с репозиторием восходящего потока.
Зайдите на URL, нажмите зеленую кнопку «Установить» и выберите репозитории, в которые вы хотите включить автоматическую синхронизацию.
Ветвь обновляется один раз в час непосредственно на GitHub, на локальном компьютере вам нужно извлечь основную ветку, чтобы убедиться, что ваша локальная копия синхронизирована.
Также ответил в https://stackoverflow.com/a/58965171/946850 .
источник
Другой вариант - использовать
Update from upstreamRepoName/master
кнопку в GitHub для Mac (и я предполагаю, что GitHub для Windows).источник
Я не знаю, как это можно сделать без добавления другого пульта, однако я всегда добавляю репо, с которого я разветвился, как
upstream
пульт, чтобы я мог просто сделать:Это будет синхронизировать все ветви вкл. создание новых (удалите,
refs/heads/
чтобы обновить только существующие ветки). Если какая-либо из ваших ветвей разошлась, она выдаст ошибку для этой ветви.источник