Pregunta

Estoy trabajando en un repositorio de git local. Hay dos sucursales, master y feature_x .

Quiero enviar feature_x al repositorio remoto, pero no quiero enviar los cambios en la rama master .

¿Funcionará un git push origin feature_x de mi rama feature_x ( feature_x ya existe en el control remoto)?

No quiero probar esto en mi caja, porque no puedo presionar para dominar en este momento.

¿Fue útil?

Solución

sí, solo haz lo siguiente

git checkout feature_x
git push origin feature_x

Otros consejos

Por defecto, git push actualiza todas las sucursales remotas. Pero puedes configurar git para actualizar solo la rama actual a su versión anterior.

git config push.default upstream

Significa que git solo actualizará la rama actual (extraída) cuando hagas push de git.

Otras opciones válidas son:

  • nada : no empuje nada (error) a menos que se especifique una refspec . Esto está dirigido principalmente a las personas que desean evitar errores al ser siempre explícitos.
  • coincidencia : presione todas las ramas que tienen el mismo nombre en ambos extremos. (opción predeterminada anterior a Ver 1.7.11)
  • upstream : lleva la rama actual a su upstream rama. Este modo solo tiene sentido si está presionando hacia el mismo repositorio del que normalmente obtendría (es decir, flujo de trabajo central ). No es necesario tener el mismo nombre para sucursales locales y remotas.
  • tracking : en desuso, use upstream en su lugar.
  • current : empuje la rama actual a la rama remota del mismo nombre en el extremo receptor. Funciona tanto en flujos de trabajo centrales como no centrales.
  • simple : [disponible desde la versión 1.7.11] en el flujo de trabajo centralizado, funciona como upstream con una seguridad adicional para rechazar el envío si el nombre de la sucursal en sentido ascendente es diferente de el local Cuando empuja a un control remoto que es diferente del control remoto del que normalmente tira, trabaje como actual . 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.

Actualización menor en la parte superior de Respuesta de Karthik Bose : puede configurar git globalmente para que todos los espacios de trabajo se comporten. de esa manera:

git config --global push.default upstream

Entonces, digamos que tienes una rama local, un origen llamado remoto y un origen / maestro de la rama remota.

Para enviar el contenido de foo a origin / master, primero debes configurar su upstream:

git checkout foo
git branch -u origin/master

Luego puedes ingresar a esta rama usando:

git push origin HEAD:master

En el último comando puedes agregar --force para reemplazar todo el historial de origen / maestro con el de foo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top