2010-01-18 8 views
20

Actualmente trabajo en una característica que resulta ser más grande de lo esperado, por lo que es probablemente el mejor para crear una rama para trabajar en él. De modo que necesito crear una nueva rama desde mi directorio de trabajo actual y reiniciar la rama principal a la HEAD actual para que se puedan hacer algunas correcciones al entorno de producción.Crear rama desde el árbol de trabajo actual y restablecer a HEAD

De alguna manera esto suena como una tarea fácil, sin embargo, no puedo entenderlo. Posiblemente debido a mi falta de sueño.

Respuesta

20

Por lo tanto, crear una rama de trabajo:

git checkout -b working_branch 

o bien confirmar o esconder sus cambios

git add <files> 
git commit -m "message" 

O

git stash 

Volver a dominar

git checkout master 
git reset HEAD 
+2

No tiene sentido hacer 'git reset HEAD' inmediatamente después de un' checkout'. No habrá ningún cambio en el índice, el pago de una sucursal actualiza el índice a la sucursal desprotegida. –

+0

Eso es un poco exagerado, suponiendo que se comprometa en la nueva rama, el árbol de trabajo debería estar limpio. –

+0

'git checkout -b working_branch' esto fallará si tiene cambios no confirmados. – user1712447

13

Si aún no ha realizado una confirmación, no es necesario mover el maestro, ya está en el actual HEAD. Puede verificar una nueva sucursal con checkout -b, no necesita que su árbol de trabajo esté limpio.

E.g.

git checkout -b newtopic 

Ahora se encuentra en newtopic y puede confirmar los cambios de árboles trabajan aquí. master no necesita moverse.

Cuestiones relacionadas