Синхронизация ветви вилки из пользовательского веб-интерфейса
-
На GitHub перейдите на главную страницу разветвленного репозитория, который требуется синхронизировать с вышестоящим репозиторием.
-
Над списком файлов выберите раскрывающееся меню "Синхронизация вилки ".
-
Просмотрите сведения о фиксациях из вышестоящего репозитория, а затем щелкните Обновить ветвь.
Если изменения из вышестоящего репозитория вызывают конфликты, GitHub предложит создать запрос на вытягивание для разрешения конфликтов.
Синхронизация ветви вилки с помощью GitHub CLI
GitHub CLI — это инструмент с открытым исходным кодом для использования GitHub из командной строки компьютера. При работе с командной строкой можно использовать GitHub CLI — это позволит экономить время и не переключать контекст. Дополнительные сведения о GitHub CLIсм. в разделе "Сведения о GitHub CLI".
Чтобы обновить удаленную вилку из родительского элемента, используйте подкоманду gh repo sync -b BRANCH-NAME
и укажите имена вилки и ветви в качестве аргументов.
gh repo sync owner/cli-fork -b BRANCH-NAME
Если изменения из вышестоящего репозитория вызывают конфликт, то GitHub CLI не сможет синхронизироваться. Вы можете задать флаг --force
для перезаписи целевой ветви.
Синхронизация ветви вилки из командной строки
Прежде чем синхронизировать вилку с вышестоящим репозиторием, необходимо настроить удаленный репозиторий, указывающий на вышестоящий репозиторий в Git. Дополнительные сведения см. в разделе Настройка удаленный репозиторий для вилки.
-
Откройте ТерминалТерминалGIT Bash.
-
Измените текущий рабочий каталог на локальный проект.
-
Получение ветвей и их соответствующих фиксаций из вышестоящего репозитория. Фиксации в
BRANCH-NAME
будут храниться в локальной ветвиupstream/BRANCH-NAME
.$ git fetch upstream > remote: Counting objects: 75, done. > remote: Compressing objects: 100% (53/53), done. > remote: Total 62 (delta 27), reused 44 (delta 9) > Unpacking objects: 100% (62/62), done. > From https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY > * [new branch] main -> upstream/main
-
Извлеките локальную ветвь вилки по умолчанию — в этом примере мы используем
main
.$ git checkout main > Switched to branch 'main'
-
Объедините изменения из вышестоящей ветви по умолчанию ( в данном случае
upstream/main
) с локальной ветвью по умолчанию. Это приведет к синхронизации ветви вилки по умолчанию с вышестоящим репозиторием без потери локальных изменений.$ git merge upstream/main > Updating a422352..5fdff0f > Fast-forward > README | 9 ------- > README.md | 7 ++++++ > 2 files changed, 7 insertions(+), 9 deletions(-) > delete mode 100644 README > create mode 100644 README.md
Если локальная ветвь не имеет уникальных фиксаций, Git выполнит быстрое перемещение вперед. Дополнительные сведения см. в статье Базовое ветвление и слияние в документации по Git.
$ git merge upstream/main > Updating 34e91da..16c56ad > Fast-forward > README.md | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-)
Если локальная ветвь имела уникальные фиксации, возможно, потребуется устранить конфликты. Дополнительные сведения см. в разделе Разрешение конфликтов слияния.
Tip
Синхронизация вилки обновляет только локальную копию репозитория. Чтобы обновить вилку на GitHub.com, необходимо отправить изменения.