Skip to main content

Sincronizar una bifurcación

Sincronizar una bifurcación de un repositorio para mantenerla actualizada con el repositorio ascendente.

Who can use this feature

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

Sincronización de una bifurcación desde la IU web

  1. En GitHub Enterprise Cloud, navega a la página principal del repositorio bifurcado que quieras sincronizar en el repositorio de nivel superior.
  2. Seleccione la lista desplegable Sincronizar bifurcación. Lista desplegable "Sincronizar bifurcación" resaltada
  3. Revisa los detalles sobre las confirmaciones del repositorio ascendente y, a continuación, haz clic en Actualizar rama. Sincronización modal de bifurcación con el botón "Actualizar rama" resaltado

Si los cambios del repositorio de nivel superior ocasionan conflictos, GitHub te pedirá crear una solicitud de cambios para resolver los conflictos.

Sincronización de una bifurcación de rama con GitHub CLI

GitHub CLI es una herramienta de código abierto para usar GitHub desde la línea de comandos del equipo. Cuando trabajas desde la línea de comandos, puedes utilizar el GitHub CLI para ahorrar tiempo y evitar cambiar de contexto. Para más información sobre la GitHub CLI, vea "Acerca de la GitHub CLI".

Para actualizar la bifurcación remota desde su elemento primario, usa el subcomando gh repo sync -b BRANCHNAME y proporciona el nombre de la bifurcación y la rama como argumentos.

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

Si los cambios del repositorio ascendente provocan un conflicto, la GitHub CLI no se podrá sincronizar. Puede establecer la marca -force para sobrescribir la rama de destino.

Sincronización de una bifurcación de rama desde la línea de comandos

Para poder sincronizar la bifurcación con un repositorio ascendente, debes configurar un repositorio remoto que apunte al repositorio ascendente en Git.

  1. Abra TerminalTerminalGit Bash.

  2. Cambiar el directorio de trabajo actual en tu proyecto local.

  3. Extrae las ramas y sus respectivas confirmaciones desde el repositorio ascendente. Las confirmaciones en BRANCHNAME se almacenarán en la rama local 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://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
    >  * [new branch]      main     -> upstream/main
  4. Revise la rama predeterminada local de la bifurcación; en este caso, utilizamos main.

    $ git checkout main
    > Switched to branch 'main'
  5. Combine los cambios de la rama predeterminada ascendente (en este caso, upstream/main) en la rama predeterminada local. Esto hace que la rama predeterminada de tu bifurcación se sincronice con el repositorio ascendente sin perder tus cambios locales.

    $ 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

    Si la rama local no tiene ninguna confirmación única, Git realizará un avance rápido. Para obtener más información, consulta Bifurcación y combinación básicas en la documentación de Git.

    $ git merge upstream/main
    > Updating 34e91da..16c56ad
    > Fast-forward
    >  README.md                 |    5 +++--
    >  1 file changed, 3 insertions(+), 2 deletions(-)

    Si la rama local tenía confirmaciones únicas, es posible que tengas que resolver conflictos. Para más información, vea "Solución de conflictos de combinación".

Sugerencia: Con la sincronización de la bifurcación solo se actualiza la copia local del repositorio. Para actualizar la bifurcación en GitHub.com, debe enviar los cambios.