Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.
В настоящее время GitHub AE находится в ограниченном выпуске.

Синхронизация вилки

Синхронизируйте вилку репозитория, чтобы гарантировать его актуальность в вышестоящем репозитории.

Кто может использовать эту функцию

People with write access for a forked repository can sync the fork to the upstream repository.

Синхронизация ветви вилки из пользовательского веб-интерфейса

  1. На GitHub AE перейдите на главную страницу разветвленного репозитория, который требуется синхронизировать с вышестоящим репозиторием.

  2. Над списком файлов выберите раскрывающееся меню Выбор вышестоящий.

    Снимок экрана: страница main вилки. Раскрывающееся меню со значком синхронизации и надписью "Получить вышестоящий" выделено темно-оранжевым цветом.

  3. Просмотрите сведения о фиксациях из вышестоящего репозитория, а затем щелкните Получить и объединить.

Если изменения из вышестоящего репозитория вызывают конфликты, GitHub предложит создать запрос на вытягивание для разрешения конфликтов.

Синхронизация ветви вилки с помощью GitHub CLI

GitHub CLI — это инструмент с открытым исходным кодом для использования GitHub из командной строки компьютера. При работе с командной строкой можно использовать GitHub CLI — это позволит экономить время и не переключать контекст. Дополнительные сведения о GitHub CLI см. в разделе Сведения о GitHub CLI.

Чтобы обновить удаленную вилку из родительского элемента, используйте подкоманду gh repo sync -b BRANCHNAME и укажите имена вилки и ветви в качестве аргументов.

$ gh repo sync owner/cli-fork -b BRANCH_NAME

Если изменения из вышестоящего репозитория вызывают конфликт, то GitHub CLI не сможет синхронизироваться. Вы можете задать флаг -force для перезаписи целевой ветви.

Синхронизация ветви вилки из командной строки

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

  1. Откройте ТерминалТерминалGIT Bash.

  2. Измените текущий рабочий каталог на локальный проект.

  3. Получение ветвей и их соответствующих фиксаций из вышестоящего репозитория. Фиксации в BRANCHNAME будут храниться в локальной ветви upstream/BRANCHNAME.

    $ 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://HOSTNAME/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
    >  * [new branch]      main     -> upstream/main
  4. Извлеките локальную ветвь вилки по умолчанию — в этом примере мы используем main.

    $ git checkout main
    > Switched to branch 'main'
  5. Объедините изменения из вышестоящей ветви по умолчанию ( в данном случае 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(-)

    Если локальная ветвь имела уникальные фиксации, возможно, потребуется устранить конфликты. Дополнительные сведения см. в разделе Разрешение конфликтов слияния.

Совет. При синхронизации вилки обновляется только локальная копия репозитория. Чтобы обновить вилку на ваше предприятие, необходимо отправить изменения.