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 changes
vsexisting 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 newBranch
Como se menciona en la
git reset
página del manual :master
rama " ". Desea continuar puliéndolos en una rama de tema, así que cree una "topic/wip
" rama de la actualHEAD
.master
rama para deshacerte de esos tres commits.topic/wip
rama " " y siga trabajando.Nota: debido al efecto "destructivo" de un
git reset --hard
comando (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
--soft
opció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 switch
crearía la rama en una línea (con el mismo tipo dereset --hard
, así que tenga cuidado con su efecto):fuente
git reset --hard
bombardeará tus cambios, y si aún no están comprometidos, ¡son irrecuperables! Puede que solo necesitegit checkout -b …
git checkout -b
primera.topic_wip
funcionarí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/newbranch
Cualquier 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/NEWBRANCH
fuente
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
-s
en 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 push
no es un comando. Probablemente quieras usargit stash
ogit stash save
. Si desea incluir archivos sin seguimiento en el alijo, use la--include-untracked
opción Del mismo modo, si desea incluir archivos no rastreados e ignorados en el alijo, use la--add
opció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