Extraiga nuevas actualizaciones del repositorio de GitHub original al repositorio de GitHub bifurcado
Bifurqué el repositorio de alguien en GitHub y me gustaría actualizar mi versión con confirmaciones y actualizaciones realizadas en el repositorio original. Estos se hicieron después de que bifurqué mi copia.
¿Cómo puedo incorporar los cambios que se realizaron en el origen e incorporarlos a mi repositorio?
Tienes que agregar el repositorio original (el que bifurcaste) como remoto.
De la documentación de GitHub sobre cómo bifurcar un repositorio :
Una vez que se complete la clonación, su repositorio tendrá un control remoto llamado "
origin
" que apunta a su bifurcación en GitHub.
No dejes que el nombre te confunda, esto no apunta al repositorio original desde el que bifurcaste. Para ayudarlo a realizar un seguimiento de ese repositorio, agregaremos otro control remoto llamado "upstream":$ cd PROJECT_NAME $ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git $ git fetch upstream # then: (like "git pull" which is fetch + merge) $ git merge upstream/master master # or, better, replay your local work on top of the fetched branch # like a "git pull --rebase" $ git rebase upstream/master
También hay una herramienta de línea de comandos ( gh
) que puede facilitar las operaciones anteriores .
Aquí hay una imagen de cómo funciona:
Consulte también "¿ Las bifurcaciones de Git son en realidad clones de Git? ".
Además de la respuesta de VonC, puedes modificarla aún más a tu gusto.
Después de buscar desde la rama remota, aún tendrás que fusionar las confirmaciones. yo reemplazaría
$ git fetch upstream
con
$ git pull upstream master
ya que git pull es esencialmente git fetch + git merge.
Usar:
git remote add upstream ORIGINAL_REPOSITORY_URL
Esto configurará su flujo ascendente al repositorio desde el que bifurcó. Entonces haz esto:
git fetch upstream
Esto recuperará todas las ramas, incluida la maestra, del repositorio original.
Combine estos datos en su rama maestra local:
git merge upstream/master
Envía los cambios a tu repositorio bifurcado, es decir, al origen:
git push origin master
¡Voilá! Ha terminado con la sincronización del repositorio original.