Trabajando con git y controles remotos

Buenos días, busqué pero no encontré, por lo tanto preguntando aquí. 🙂

Tengo una situación como la siguiente: origin apunta a un proyecto en github, fork1 que apunta a mi fork en github y fork2 que apunta al tenedor de un compañero.

Por lo tanto, si lo hago

 $ git checkout master # perform various stuff $ git push 

todos los cambios irán a origin/master (hasta ahora todo bien).

Ahora me gustaría tomar el maestro fork1 y actualizarlo. yo si

 $ git checkout master $ git pull $ git checkout -b fork1-master fork1/master $ git merge $ git push 

Tenía la printing de que debería impulsar los cambios actuales en fork1/master . En su lugar, está creando una nueva twig: fork1/fork1-master .

La única forma que encontré para fusionarme en fork1 / master es hacer

 $ git checkout master $ git pull $ git checkout -b fork1-master fork1/master $ git merge $ git push fork1 fork1-master:master 

¿Es el comportamiento esperado o estoy haciendo algo mal?

Gracias
Davide

Cuando tú

 git checkout -b fork1-master fork1/master 

usted crea una fork1-master que rastrea la fork1/master remota fork1/master .

Para poder presionar de manera directa, por defecto git requiere (es decir, en modo simple) que los nombres de las twigs sean idénticos. Esto es deseable en general, pero no es deseable en su caso, porque obviamente desea mantener el nombre master reservado para el origin/master .

Así que debes continuar y presionar manualmente como lo haces,

 on fork1-master> git push fork1 HEAD:master 

O tendrá que decirle a git que cambie el valor pnetworkingeterminado y siempre presione a una twig ascendente. Esto se puede hacer configurando push.default en la configuration en upstream .

Así es como puedes hacer esto en la línea de command en lugar de la configuration:

 on fork1-master> git -c push.default=upstream push 

le dirá a git que identifique la twig que está rastreando en el control remoto y empuje su twig allí.