¿Puedo enviar cambios de un repository a otro en Git?

Actualmente estoy trabajando en un proyecto y mi empleador me ha dado acceso de escritura al repository principal del proyecto en el que fusionó el repository en el que estaba trabajando, creo. Una twig particular se me especifica.

Ahora él desea hacer algunos cambios y empujarlos a este repository. No he trabajado con Git en proyectos grandes antes. ¿Es posible que haga cambios en el repository en el que estoy trabajando y continúe presionándolo en el repository principal y Git seguirá fusionándolos? ¿Como funciona esto?

Git empujar no fusiona nada; simplemente transmite objects al repository remoto y actualiza los cabezales de bifurcación. Básicamente es una forma de synchronization de files con conciencia de revisión.

Toda la edición tiene lugar localmente, y lo mismo ocurre con Git: usted hace toda la preparación del compromiso, la fusión, etc. en su repository local. Los repositorys Upstream ni siquiera pueden hacer la mayoría de estas cosas porque están "desnudos": no tienen un tree de trabajo. Si tuviera que iniciar session en el server e ingresar al repository de Git en sentido ascendente, no podría hacer ninguna modificación, fusión o algo por el estilo.

Supongo que el jefe ha configurado el repository principal como un "control remoto" para su repository local. Eche un vistazo dentro del file .git/config .

Si todo está configurado correctamente, debe poder comprometerse con esta sucursal local y luego hacer un esfuerzo para que la sucursal ascendente se vea como la local.

Si otras personas le han enviado algo a la sucursal antes que usted, puede integrar sus cambios con git pull --rebase , arreglar cualquier conflicto y volver a intentarlo. La fusión se hace localmente.

Su inserción tendrá éxito cuando los nuevos cambios que está impulsando se basen en la misma confirmación primaria que coincide con el encabezado ascendente: es decir, no hay nada más nuevo en sentido ascendente que la línea de reference con la que está trabajando. En este caso, su cambio es un "cambio rápido".

Git detecta y bloquea los cambios de avance rápido (lo que significa que existen cosas más nuevas en la sucursal en el repository aguas arriba que sería destruido si se empujara su versión de la twig). Entonces, cuando sus cambios estén listos para su publicación, no hay nada malo en probar git push . Cuando no funciona, debe tirar para integrarse e intentar nuevamente; el upstream no hace ninguna integración.

Es posible hacerlo, pero realmente necesita una comprensión de cómo funcionan los controles de versión distribuida y Git. Hay varios flujos de trabajo comunes usados ​​con Git y debe consultar con su empleador para ver cómo lo usan. Aquí hay un tutorial básico: https://www.atlassian.com/git/tutorials/comparing-workflows/