Empecé a trabajar en una nueva característica y después de codificar un poco, decidí que esta característica debe estar en su propia rama.
Cómo puedo mover los cambios no comprometidos existentes a una nueva rama y restablecer la actual?
Quiero restablecer mi rama actual mientras se conserva el trabajo existente en la nueva característica.
Usa lo siguiente:
git checkout -b <new-branch>
Esto dejará su rama actual como está, creará y obtendrá una nueva rama y mantendrá todos sus cambios. A continuación, puede hacer una confirmación con:
git add <files>
y confirmar su nueva rama con:
git commit -m "<Brief description of this commit>"
Los cambios en el directorio de trabajo y los cambios puestos en escena en el índice no pertenecen a ninguna rama todavía. Esto cambia el lugar en el que esos cambios terminarían.
No se restaura la rama original, se queda como está. El último commit en <rama antigua>
seguirá siendo el mismo. Por lo tanto, usted checkout -b
y luego confirmar.
Alternativamente:
Guardar los cambios actuales en un almacén temporal:
$ git stash
Crear una nueva rama basada en este stash, y cambiar a la nueva rama:
$ git stash branch <nueva-rama> stash@{0}
Consejo: utiliza la tecla de tabulación para reducir la escritura del nombre del stash.
Si lo confirmas, también podrías seleccionar el ID de la confirmación única. Hago esto a menudo cuando empiezo a trabajar en master, y luego quiero crear una rama local antes de empujar a mi origen/
git cherry-pick <commitID>
Hay mucho que puede hacer con cherry-pick, como se describe aquí, pero esto podría ser un caso de uso para usted.