Cómo mover las confirmaciones más recientes a una nueva rama con Git

Git es una herramienta poderosa en el mundo del software moderno. Trozos de archivos y código se almacenan en proyectos a través de git branching y commit. La bifurcación permite a los desarrolladores desviarse de la versión de producción del código para corregir un error o agregar una función. Mientras que cuando crea una confirmación , git identifica esa instantánea de archivos con un hash SHA-1 único . La bifurcación en esa confirmación creará un nuevo puntero junto con la rama maestra. Las ramas nos permiten trabajar en diferentes versiones de un proyecto.

Es necesario mover las confirmaciones más recientes a una nueva rama , como en el caso de que queramos corregir un error sin cambiar la versión principal del proyecto. Además, si queremos implementar una nueva característica sin afectar el proyecto principal, hacemos git branching. Para esto, crearemos una nueva rama para las confirmaciones recientes junto con la rama principal. Luego volvemos al estado o confirmación que queremos. Esto lo hacemos al restablecer la rama maestra. Una representación visual se da a continuación.

En primer lugar, necesitamos conocer algunos comandos terminológicos para realizar la tarea:

  • HEAD:
    el puntero principal es el puntero que apunta a la confirmación más reciente, que se refleja en el árbol de trabajo. Representa el compromiso actualmente verificado en el que estamos trabajando.
  • git commit -m <mensaje>: 
    el contenido actual o los cambios en el repositorio se registran mediante la confirmación de git. Después del comando git add, todos los archivos actualizados llegan al área de preparación, después de lo cual git commit recupera los cambios en el repositorio con el mensaje de confirmación.
  • git branch <branch>: 
    este comando crea una nueva rama. Esta rama no es más que un puntero a la instantánea de nuestros cambios desde nuestro repositorio principal.
  • Referencias relativas:
    especificar compromisos por sus hashes es un trabajo tedioso. Así que usamos confirmaciones relativas. Uno de ellos es ^, que significa moverse hacia arriba una confirmación y ~<num> significa moverse hacia arriba varias veces.
  • git hard reset to head:
    el propósito del comando ‘git reset’ es mover el encabezado actual a la confirmación especificada. La opción –hard se utiliza para restablecer los archivos del índice o el área de preparación y los cambios en esos archivos se pierden, por lo que no se rastrean. Necesitamos especificar el HEAD o la referencia relativa del encabezado al compromiso que queremos mover. Hacemos esto usando git reset –hard HEAD^ lo que significa reiniciar de nuevo a la confirmación antes de head, y git reset –hard HEAD~n,  lo que significa reiniciar de nuevo a las n confirmaciones antes de head.
  • git checkout <branch>:
    el comando Git checkout nos permite navegar entre las ramas creadas por git branch. Desproteger una rama actualiza los archivos en el directorio de trabajo para que coincidan con la versión almacenada en esa rama.

A continuación se muestran los pasos para mover las confirmaciones más recientes a la nueva rama:

  1. Primero, creamos 4 confirmaciones en el repositorio existente con hashes únicos llamados C0, C1, C2 y C3, la rama principal y el puntero principal se mueven junto con la confirmación. Ahora, para mover las confirmaciones recientes a una nueva rama, crearemos una nueva rama llamada scripter .
  2. El comando git branch scripter creará una nueva rama que consistirá en todo el código de la rama principal. Ahora que hemos creado una nueva rama, podemos mover la rama maestra hacia atrás una o varias confirmaciones según sea necesario.
  3. Podemos hacer esto con git reset –hard HEAD^ y moviendo el puntero de la cabeza una tras una confirmación, git reset –hard HEAD~n moverá la rama maestra ‘n’ confirmaciones antes de la confirmación reciente, y git reset –hard <sha1 -commit-hash> moverá directamente la rama maestra a la confirmación deseada. Alternativamente, –keep en lugar de –hard preserva los cambios no confirmados en archivos no relacionados.
  4. Por último, git checkout scripter es verificar la rama recién formada con la versión de nuestro proyecto que tiene confirmaciones recientes.

Publicación traducida automáticamente

Artículo escrito por barnadipdey2510 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *