Comencé a trabajar en mi rama maestra pensando que mi tarea sería fácil. Después de un tiempo me di cuenta de que tomaría más trabajo y quiero hacer todo este trabajo en una nueva sucursal.
¿Cómo puedo crear una nueva sucursal y llevar todos estos cambios conmigo sin ensuciar al maestro ?
git
git-branch
willcodejavaforfood
fuente
fuente

branch current changesvsexisting uncommited branch. Cualquiera que hable inglés verá de inmediato que son iguales, pero los motores de búsqueda probablemente no. Guarda esta pregunta.Respuestas:
Si aún no ha realizado ninguna confirmación, solo (1: rama) y (3: pago) serían suficientes.
O, en un comando:
git checkout -b newBranchComo se menciona en la
git resetpágina del manual :masterrama " ". Desea continuar puliéndolos en una rama de tema, así que cree una "topic/wip" rama de la actualHEAD.masterrama para deshacerte de esos tres commits.topic/wiprama " " y siga trabajando.Nota: debido al efecto "destructivo" de un
git reset --hardcomando (restablece el índice y el árbol de trabajo. Cualquier cambio en los archivos rastreados en el árbol de trabajo ya que<commit>se descartan), preferiría ir con:Esto aseguraría que no estoy perdiendo ningún archivo privado (no agregado al índice).
La
--softopción no tocará el archivo de índice ni el árbol de trabajo (pero reinicia la cabeza<commit>, al igual que todos los modos).Con Git 2.23+ , el nuevo comando
git switchcrearía la rama en una línea (con el mismo tipo dereset --hard, así que tenga cuidado con su efecto):fuente
git reset --hardbombardeará tus cambios, y si aún no están comprometidos, ¡son irrecuperables! Puede que solo necesitegit checkout -b …git checkout -bprimera.topic_wipfuncionaría también;)Como se indica en esta pregunta: Git: cree una rama a partir de cambios no escalonados / no confirmados en el maestro : el alijo no es necesario.
Solo usa:
git checkout -b topic/newbranchCualquier trabajo no comprometido será llevado a la nueva sucursal.
Si intenta presionar, recibirá el siguiente mensaje
Simplemente haga lo sugerido para crear la rama de forma remota:
git push --set-upstream origin feature/feature/NEWBRANCHfuente
Sigue estos pasos:
Crea una nueva sucursal:
Checkout new branch: (esto no restablecerá su trabajo)
Ahora compromete tu trabajo en esta nueva sucursal:
El uso de los pasos anteriores mantendrá su rama original limpia y no tendrá que hacer ningún 'git reset --hard'.
fuente
-sen el paso 3.Como todavía no ha realizado ninguna confirmación, puede guardar todos los cambios en el alijo, crear y cambiar a una nueva rama, luego volver a introducir los cambios en su árbol de trabajo:
fuente
git stash pushno es un comando. Probablemente quieras usargit stashogit stash save. Si desea incluir archivos sin seguimiento en el alijo, use la--include-untrackedopción Del mismo modo, si desea incluir archivos no rastreados e ignorados en el alijo, use la--addopción en su lugar.Para agregar nuevos cambios a una nueva sucursal y empujar a remoto:
Muchas veces me olvido de agregar la parte de origen para presionar y me confundo por qué no veo la nueva rama / commit en bitbucket
fuente