Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.
GitHub AE is currently under limited release.

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

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

Who can use this feature

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

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

  1. На GitHub AE перейдите на главную страницу разветвленного репозитория, который требуется синхронизировать с вышестоящим репозиторием.
  2. Выберите раскрывающийся список Получить вышестоящий репозиторий. Раскрывающийся список "Получить вышестоящий репозиторий"
  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(-)

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

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