Lo que debe hacer a continuación es: continuar contribuyendo con nuevas funciones o corregir otros errores en sus propias ramas dedicadas (empujadas solo a su bifurcación).
Lo que significa que su tenedor permanece, pero las ramas dentro de su tenedor pueden ir y venir.
También puede eliminar la bifurcación si no planea contribuir más, pero eliminará la entrada correspondiente en 'Repositorios a los que contribuye' .
Es más fácil:
- elimine su
fix
rama (en realidad, ahora está eliminada para usted ) en su bifurcación (y en su repositorio clonado local: consulte " Eliminar una rama de Git tanto local como remotamente ")
git pull upstream master
(si master
fue la rama en la que se integró su corrección: la fusión será de avance rápido): no se necesita rebase en este punto.
- vuelva a crear una rama de corrección en la parte superior de su local actualizado
master
(ahora con la última versión upstream master
).
Sin embargo, nunca olvide un paso antes de enviar cualquier solicitud de extracción futura :
rebase primero su rama actual ( fix
) desde la rama de destino ascendente
( upstream
siendo el repositorio original que ha bifurcado: consulte " ¿Cuál es la diferencia entre el origen y el origen en github ")
Antes de enviar cualquier cosa al repositorio original ("upstream"), debe asegurarse de que su trabajo se base en lo último de dicho repositorio original (o la solicitud de extracción no resultará en una combinación de avance rápido una vez aplicada de nuevo en upstream
repositorio).
Consulte, por ejemplo, " Flujo de trabajo para administrar solicitudes de extracción en repositorios compartidos en github ".
En otras palabras, upstream
puede evolucionar (tener nuevas confirmaciones presionadas) mientras estás ocupado arreglando cosas. Necesita reproducir sus correcciones además del último trabajo de upstream para asegurarse de que sus confirmaciones sigan siendo compatibles con la última versión de upstream
.
El OP Santosh Kumar pregunta en los comentarios :
He tirado y fusionado del upstream
maestro, ¿y ahora qué?
Si no ha realizado ninguna corrección nueva desde su solicitud de extracción reciente, consulte más arriba (elimine y vuelva a crear una nueva rama fix
sobre su actualización master
).
Si ha realizado más trabajo desde su solicitud de extracción, no me fusionaría upstream
si quisiera hacer una nueva solicitud de extracción: extraería y reajustaría :
git pull --rebase upstream master
De esa manera, todo mi nuevo trabajo local se reproduce sobre las upstream
master
confirmaciones más recientes (obtenidas en mi repositorio local), suponiendo que esa master
sea la rama de destino que integrará mi futura solicitud de extracción.
Entonces puedo empujar mi trabajo local a ' origin
', que es mi bifurcación en GitHub de upstream
.
Y desde mi bifurcación en GitHub, puedo hacer una solicitud de extracción de manera segura, sabiendo que solo agregará nuevas confirmaciones upstream
sin necesidad de ninguna resolución de fusión: fusionar esas nuevas confirmaciones en el upstream
repositorio significará una combinación simple y rápida.
A git pull --rebase
sin especificar la rama sobre la que desea volver a establecer la base de su rama (actualmente verificada) fix
no funcionaría:
Eso ( git pull --rebase
) dice:
You asked to pull from the remote '`upstream`', but did not specify a branch.
¿Debería agregar maestro al fin? ¿Y qué hará esto ?, ¿eliminará mi fix
rama?
Sí, puede especificar la rama que será el objetivo de la solicitud de extracción, por ejemplo ' master
'.
Eso no eliminará su fix
rama, pero la reproducirá en la parte superior master
obtenida en su repositorio.
:)