Fusionando un repository git desde el origen al repository aguas arriba

Digamos que tengo un repository en upstream , que he bifurcado a un nuevo origin .

Si quiero fusionar los cambios del repository de subida al origen bifurcado, haría algo como esto desde el interior de la horquilla:

 $ git merge upstream/master 

¿Cómo iría en la otra dirección, desde el origen hasta la stream ascendente? Digamos que cambio algo en el tenedor que quiero presionar al padre: ¿cómo podría hacerlo?

¿Es solo una cuestión de establecer un nuevo control remoto / ascendente para el padre, usando el tenedor como el padre de la upstream ?

Un tenedor es simplemente otro clon del repository original.

Si desea compartir commit / branches entre ellos, agréguelos a ambos como files remote de su repository local, y luego puede decidir cómo fusionar y enviar sus commits a cada repository.

Cuando haces git merge upstream/master , unes tu actual con la twig master de tu control remoto upstream . Si push esos cambios hacia arriba ( git push upstream master ), actualizará su control remoto upstream . Si los push a su control remoto de origin ( git push origin master ), estará actualizando su repository original.

La única diferencia entre un tenedor y un clon es sobre el acceso .

Si clonas un proyecto de código abierto, generalmente haces un fork , ya que no puedes regresar al repository central de ese proyecto, porque no tienes los derechos para hacerlo. Si todos tuvieran el derecho de insert algo en el repository central de un proyecto, se enviaría una gran cantidad de spam a los proyectos populares (sin mencionar a las personas que crean un spam más oculto, por ejemplo, código de mala calidad, virus, lo que sea).

En tal caso, su única posibilidad de volver a introducir el código en el repository central es decirle al responsable del proyecto que retire su código. Él revisará tu código, y él piensa que es bueno, eventualmente se fusionará en el repository central. Esto es lo que se llama una request de extracción .

SIN EMBARGO

Si clonas tu propio proyecto, o el proyecto en el que trabajas (eres el mantenedor, o uno de ellos), tienes derecho a ingresar en el repository central. Entonces, en ese caso solo puedes presionar. Si no trabaja en código abierto, generalmente tendrá este caso. Simplemente configura el repository central como remoto y presiona hacia él.