Pregunta Crear una rama de Git con los cambios actuales


Empecé a trabajar en mi rama principal 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?


585
2017-10-10 08:44


origen


Respuestas:


Si aún no ha realizado ningún commit, solo (1: branch) y (3: checkout) serían suficientes.
O, en un comando: git checkout -b newBranch

Como se menciona en el git reset página man:

$ git branch topic/wip     # (1)
$ git reset --hard HEAD~3  # (2)  NOTE: use $git reset --soft HEAD~3 (explanation below)
$ git checkout topic/wip   # (3)
  1. Has hecho algunos commits, pero te das cuenta de que eran prematuros para estar en el "master"rama. Desea continuar puliéndolos en una rama de tema, así que cree"topic/wip"ramificarse de la corriente HEAD.
  2. Rebobinar el master rama para deshacerse de esos tres compromisos.
  3. Cambiar a "topic/wip"rama y sigue trabajando.

Nota: debido al efecto "destructivo" de una git reset --hard comando (restablece el índice y el árbol de trabajo. Cualquier cambio en los archivos rastreados en el árbol de trabajo desde <commit> se descartan), preferiría ir con:

$ git reset --soft HEAD~3  # (2)

Esto me aseguraría de no perder ningún archivo privado (no agregado al índice).
los --soft La opción no tocará en absoluto el archivo de índice ni el árbol de trabajo (pero restablece el cabezal a <commit>, como lo hacen todos los modos).


490
2017-10-10 08:52



Como se dice en esta pregunta: Git: crea una rama desde cambios sin corregir / sin compromiso en el maestro: escondite no es necesario.

Solo usa:

git checkout -b topic/newbranch 

Cualquier trabajo no comprometido será llevado a la nueva sucursal.

Si intentas presionar, recibirás el siguiente mensaje

fatal: la función de sucursal actual / NEWBRANCH no tiene una rama ascendente. A   presione la rama actual y configure el control remoto como corriente arriba, use

git push --set-upstream origin feature/feature/NEWBRANCH

Solo haz lo que se sugiere para crear la rama de forma remota:

git push --set-upstream origin feature/feature/NEWBRANCH


181
2017-08-19 06:05



Sigue estos pasos:

  1. Crea una nueva rama:

    git branch newfeature
    
  2. Pagar nueva sucursal: (esto no restablecerá su trabajo).

    git checkout newfeature
    
  3. Ahora comprometa su trabajo en esta nueva rama:

    git commit -s
    

El uso de los pasos anteriores mantendrá limpia la rama original y no tendrá que hacer ningún 'reinicio de git --hard'.


53
2017-08-25 15:12



Como todavía no has hecho ningún commit, puedes guardar todos tus cambios en el alijo, crear y cambiar a una nueva rama, y ​​luego volver a colocar esos cambios en tu árbol de trabajo:

git stash  # save local modifications to new stash
git checkout -b topic/newbranch
git stash pop  # apply stash and remove it from the stash list

16
2017-10-10 15:27



Para agregar nuevos cambios a una nueva rama y presionar a control remoto:

git branch branch/name
git checkout branch/name
git push origin branch/name

Muchas veces me olvido de agregar la parte de origen para presionar y me confundo por qué no veo la nueva rama / confirmación en bitbucket


4
2018-04-24 17:39