2011-10-20 10 views
6

Ocasionalmente me encuentro en la siguiente situación: Estoy trabajando en una rama (digamos maestro) y estoy editando algunos archivos, pero cuando llega el momento de un compromiso. Me doy cuenta de que preferiría comprometerme con una nueva rama (por ejemplo, experimental). En otras palabras, la rama de edad (maestro) debe permanecer intacta y una nueva rama debe ser creado que se verá así:git: Confirmar el trabajo actualmente en curso en la rama actual a una nueva rama

.. -- master -- new commit 

Cuál es la forma más sencilla de hacerlo?

Actualmente, me comprometo con la rama anterior, luego creo la nueva rama y finalmente restablezco la antigua. Pero eso es realmente feo.

+2

posible duplicado de [Git: ¿Cómo mover el trabajo existente a una nueva sucursal?] (Http://stackoverflow.com/questions/1394797/git-how-to-move-existing-work-to-new-branch) – brendan

Respuesta

4
git checkout -b branch  # create new branch out of current head 
git add <files>    # the changes you had done in your working directory will be carried over 
git commit -m "message"  # commit! 
+0

se menciona en la pregunta "pero cuando llega el momento de un compromiso me doy cuenta de que preferiría comprometerme con una nueva sucursal" – COD3BOY

+0

@Sanjay - Sí, y su punto es? – manojlds

+0

@ user1004474 - Pruébelo. Los cambios de escenario y sin escenario estarán allí cuando cambies de rama. – manojlds

1

Es un poco más fácil si crea la nueva rama en primer lugar:

$ git checkout -b new_branch 
$ git commit 
+0

El punto es que no planifiqué esto antes de tiempo, por lo que los cambios se hicieron primero (y posiblemente algunos de los añadidos al índice con git add) y luego decido ramificarme. – tros443

+0

@ user1004474: Todavía funciona. Puede ejecutar un 'git checkout -b new_branch' independientemente de si tiene cambios y si se han agregado al índice o no. – hammar

+0

Sí, tiene razón – tros443

0

Otra posibilidad es para que usted pueda seguir adelante y comprometerse a la rama master, a continuación, cortar otra rama de la nueva HEAD (por ejemplo, feature). Una vez hecho esto, puede git reset maestro a la posición antes de las confirmaciones.

+0

Ok, no leyó el 'Actualmente, me comprometo con una rama anterior, luego creo la nueva y finalmente restablezco la antigua. Pero eso es realmente feo. Entonces. – manojlds

+0

Sí. Me lo perdí. No creo que sea tan feo, aunque FWIW. –

+0

Obtener hace que sea fácil de hacer, pero es feo OMI – manojlds

Cuestiones relacionadas