Skip to main content

Sincronizar una bifurcación

Sincronice un repositorio bifurcada con su repositorio ascendente mediante la interfaz web, GitHub CLI o línea de comandos.

¿Quién puede utilizar esta característica?

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

Sincronización de un fork desde la UI web

  1. En GitHub, vaya a la página principal del repositorio bifurcada que desea sincronizar con el repositorio ascendente.

  2. Encima de la lista de archivos, seleccione el menú desplegable Sincronización del fork.

    Captura de pantalla de la página principal de una bifurcación. Un menú desplegable, etiquetado con un icono de sincronización y "Sync fork", está delineado en naranja oscuro.

  3. Revisa los detalles sobre las confirmaciones del repositorio ascendente y, a continuación, haz clic en Actualizar rama.

Si los cambios del repositorio ascendente provocan conflictos, GitHub se le pedirá que cree una solicitud de incorporación de cambios para resolver los conflictos.

Sincronización de una rama de bifurcación 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 GitHub CLI, consulte Acerca de GitHub CLI.

Para actualizar la bifurcación remota a partir de su elemento primario, utilice el subcomando gh repo sync -b BRANCH-NAME y proporcione el nombre de su bifurcación y de la rama como argumentos.

gh repo sync owner/cli-fork -b BRANCH-NAME

Si los cambios del repositorio ascendente provocan conflictos, GitHub CLI no se puede sincronizar. Para sobrescribir la rama de destino, use la --force marca .

Sincronización de una rama bifurcada 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. Consulte Configuración de un repositorio remoto para una bifurcación.

  1. Abre Terminal o Git Bash.

  2. Cambia el directorio de trabajo actual al de tu proyecto local.

  3. Extrae las ramas y sus respectivas confirmaciones desde el repositorio ascendente. Las confirmaciones en BRANCH-NAME se almacenarán en la rama local 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://HOSTNAME/ORIGINAL-OWNER/ORIGINAL-REPOSITORY
    >  * [new branch]      main     -> upstream/main
    
  4. Consulte la rama predeterminada local de la bifurcación. En este ejemplo, usamos main.

    $ git checkout main
    > Switched to branch 'main'
    
  5. Combine los cambios de la rama predeterminada ascendente en la rama predeterminada local. En este ejemplo, la rama predeterminada ascendente es upstream/main. Esto sincroniza la rama predeterminada de la bifurcación con el repositorio ascendente sin perder los 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 tuvo ningún commit único, Git ejecutará un avance rápido. Consulte Bifurcación básica y combinación 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. Consulte Combinar y cerrar pull requests.

Sugerencia

Al sincronizar tu bifurcación, solo actualiza la copia local del repositorio. Para actualizar la bifurcación en tu instancia de GitHub Enterprise Server, debe insertar los cambios.