Estoy trabajando en un repositorio git local. Hay dos ramas, mastery feature_x.
Quiero empujar feature_xal repositorio remoto, pero no quiero empujar los cambios en la masterrama.
¿Funcionará una git push origin feature_xde mi feature_xsucursal (la feature_xsucursal ya existe en remoto)?
No quiero probar esto en mi caja, porque no puedo presionar para dominar en este momento.

Respuestas:
si, solo haz lo siguiente
fuente
git push -u origin <branch-name>. Sin embargo, no lo mencionaste. Es necesario ?-uopción en ungit-pushcomando establecerá la referencia aguas arriba para rastrear la rama que se acaba de presionar. Esto hará que cosas comogit-pullesa rama en el futuro ya sepan de qué rama extraer sin especificarlo. No se requiere como una opción para impulsar una sola rama, pero se usa ampliamente porque mucha gente quiere hacer que la rama local rastree la rama remota que están presionando.Por defecto
git pushactualiza todas las ramas remotas. Pero puede configurar git para actualizar solo la rama actual a su flujo ascendente.Significa que git actualizará solo la rama actual (desprotegida) cuando haga git push.
Otras opciones válidas son:
nothing: No presione nada (error fuera) a menos que se especifique explícitamente una refspec . Esto está destinado principalmente a las personas que desean evitar errores siendo siempre explícitos.matching: Empuje todas las ramas que tengan el mismo nombre en ambos extremos. (opción predeterminada anterior a la versión 1.7.11)upstream: Empuje la rama actual a su rama aguas arriba. Este modo solo tiene sentido si está presionando al mismo repositorio desde el que normalmente extraería (es decir, flujo de trabajo central ). No es necesario tener el mismo nombre para sucursal local y remota.tracking: Desaprobado, useupstreamen su lugar.current: Empuje la rama actual a la rama remota del mismo nombre en el extremo receptor. Funciona en flujos de trabajo centrales y no centrales.simple: [disponible desde la versión 1.7.11] en el flujo de trabajo centralizado, trabaje comoupstreamcon una seguridad adicional para negarse a presionar si el nombre de la rama ascendente es diferente del local. Cuando empuje a un control remoto que sea diferente del control remoto desde el que normalmente tira, trabaje comocurrent. Esta es la opción más segura y es adecuada para principiantes. Este modo se ha convertido en el predeterminado en Git 2.0.fuente
currentera lo que estaba buscando, por defectogit pushen lafoorama lo empujará a laorigin/foorama.currenttiene más sentido por defecto.simpletiene más sentido por defecto. He actualizado la respuesta con 'cuándo usar qué'. Por favor, eche un vistazo.simple.Actualización menor además de la respuesta de Karthik Bose : puede configurar git globalmente, para afectar a todos sus espacios de trabajo para que se comporten de esa manera:
fuente
Entonces, supongamos que tiene una sucursal local foo, un origen remoto llamado y un origen / maestro de sucursal remota.
Para empujar el contenido de foo a origin / master, primero debe configurar su flujo ascendente:
Entonces puede empujar a esta rama usando:
En el último comando puede agregar --force para reemplazar todo el historial de origen / maestro con el de foo.
fuente