¿Cómo empujar múltiples twigs desde múltiples commits?

Nunca utilicé git antes de que GitHub lanzara la aplicación de Windows, así que nunca lo he usado en la línea de command.

Así que aquí está mi situación:
Hice algunos commits en master , luego cambié de twig e hice algunos commits allí también. Todo sin presionar a GitHub. Cuando hice clic en sync en la aplicación de Windows (que supongo que no es git push ), para mi sorpresa, todas mis confirmaciones se enviaron a mi nueva sucursal, incluso las confirmaciones que hice mientras estaba en master .

Dado que este es el comportamiento de la aplicación de Windows, supongo que tengo que usar la línea de command.
¿Cuál es el command correcto de git push para enviar los commits a las twigs correctas en el control remoto?

Para empujar todas las twigs (refs bajo refs / heads), use el siguiente command (donde el origen es su control remoto):

 git push origin --all 

También puede establecer push.default para que matching en su configuration para insert todas las twigs que tienen el mismo nombre en ambos extremos de manera pnetworkingeterminada. Por ejemplo:

 git config --global push.default matching 

Desde Git 2.0, el valor pnetworkingeterminado es simple que es la opción más segura.

Si desea insert varias twigs específicas (por ejemplo, branch1 y branch2), puede usar:

 git push origin branch1 branch2 

En Git> = 2.4, esta operación se puede realizar atómicamente (es decir, si no se presiona ninguna de las twigs especificadas, nada se presionará):

 git push --atomic origin branch1 branch2 

git push origin pasará de todas las twigs de seguimiento hasta el control remoto de forma pnetworkingeterminada.

git push origin my-new-branch presionará solo su nueva twig.

No creo que haya nada simple o posible de hacer accidentalmente que empuje las confirmaciones de dos twigs diferentes hasta la misma twig y realice la fusión en el control remoto.

Supongo que la nueva twig tuvo los compromisos del maestro en su historia. Para ver si eso es cierto, ejecute git log my-new-branch localmente y vea si esos commits estaban en su historial.

Si es así, cuando "cambias sucursales" probablemente te hayas desviado de la function maestra después de que se hicieron las nuevas confirmaciones, por lo que la nueva twig tenía todas las confirmaciones en la historia, no solo las únicas de esa twig.

Última respuesta, pero voy a compartir mi solución que funcionó para mí.

Finalmente mi file /foo/.git/config ve así:

 [core] ... [remote "dev"] url = http://dev.foobar.com/foo.git fetch = +refs/heads/*:refs/remotes/dev/* [remote "pro"] url = http://pro.foobar.com/foo.git fetch = +refs/heads/*:refs/remotes/pro/* [remote "all"] url = http://dev.foobar.com/foo.git url = http://pro.foobar.com/foo.git [http] postBuffer = 524288000 

Y command;

 git push all --all 

Créditos: Empujar a múltiples repositorys Git simultáneamente