
Un requisito básico de cualquier sistema de control de versiones es almacenar diferentes versiones de archivos para usted. En Git, el comando que hace esto es commit
. Aquí está todo lo que necesitas saber.
¿Qué es un compromiso en Git?
Configuración del comando de confirmación
Usando el comando de confirmación
Un compromiso básico
Archivos de almacenamiento automático
Puesta en escena y compromiso al mismo tiempo
Comprometerse con una sucursal diferente
Hacer cambios en las confirmaciones
Eliminación de cambios de una confirmación
Revertir una confirmación completa
La navaja suiza Git
¿Qué es un compromiso en Git?
Los compromisos son la serie de instantáneas realizadas a lo largo del ciclo de vida de un proyecto que conforman su historial de desarrollo. Los compromisos son los que nos permiten extraer una versión del proyecto tal como era en diferentes puntos en el pasado. ¿Por qué es eso importante?
Los sistemas de control de versiones (VCS) se usan más comúnmente con el código fuente del software y los proyectos de desarrollo. Pero se pueden usar con éxito con cualquier colección de archivos de texto, como los archivos Markdown que contienen capítulos de un libro.
Es posible que no desee que el VCS maneje todos los archivos en los directorios de su proyecto, por lo que debe poder designar los archivos cuya versión desea controlar. Esto los agrega a la vista de control de versiones del proyecto. Serán monitoreados por cambios.
Otra forma de lograr esto es usar una lista de ignorados. Esto le dice a Git qué archivos, directorios o tipos de archivos debe ignorar siempre.
Con el tiempo, a medida que se agreguen nuevos archivos al proyecto, será necesario agregar algunos al sistema de control de versiones. En Git, esto es manejado por el add
dominio. En realidad, el add
comando hace doble servicio, como veremos.
Para mantener un historial de los cambios que se han realizado en el proyecto, periódicamente le pedirá a Git que almacene una instantánea del estado del proyecto, usando el commit
dominio. Aquí es donde el add
el comando vuelve a aparecer en nuestro flujo de trabajo. usamos el add
comando para decirle a Git cuál cambió archivos que queremos tener incluidos en la instantánea. Entonces usamos commit
para decirle a Git que cree la instantánea.
Configuración del comando de confirmación
La información sobre la confirmación se almacena con él, por lo que siempre es posible saber quién realizó la confirmación, cuándo y qué contiene. Algunos de estos metadatos se capturan en el momento de la confirmación, como el mensaje de confirmación.
Los metadatos relativos a la identidad de los miembros del equipo de desarrollo pueden ser configurados por cada usuario, para evitar proporcionar repetidamente la misma información.
Para configurar su nombre globalmente para todos los repositorios en su computadora, use este comando.
git config --global user.name "Dave McKay"
Para verificar que se haya configurado su nombre, use este comando.
git config --global user.name
Si necesita usar un nombre diferente en un repositorio en particular, cambie al directorio del proyecto y use el mismo comando sin el --global
opción.
git config user.name "McKay, David"
git config user.name
Ahora tenemos un nombre de usuario predeterminado diferente para este repositorio, y nuestro nombre global todavía se usa para otros repositorios.
De manera similar, podemos configurar una dirección de correo electrónico globalmente o para un solo repositorio al incluir u omitir el --global
opción.
git config user.email "dave@phony-domain.com"
git config --global user.email "dave@fake-domain.com"
git config user.email
git config --global user.email
Estos ajustes se guardan en archivos de configuración. La configuración global de Git se mantiene en “~/.gitconfig”, y la configuración específica del repositorio se mantiene en el archivo “.git/config” del repositorio.
El commit
El comando hace referencia y usa estos valores mientras opera.
Usando el comando de confirmación
El uso básico de la commit
El comando es tomar los archivos que se encuentran en el área de preparación, conocida como índice, y almacenarlos como una confirmación en la rama actual del repositorio.
Un compromiso básico
Tenemos un proyecto con un archivo modificado. Usaremos el add
Comando para preparar el archivo, luego confirmarlo. estamos usando el -m
(mensaje de confirmación) para que podamos proporcionar una breve descripción del propósito de los cambios. Si no usamos esta opción, se nos solicita un mensaje de confirmación cuando se lleva a cabo la confirmación. Es más conveniente agregar uno en la línea de comando.
git add jibber.c
git commit -m "Updated help text"
Si usamos el git log
comando podemos revisar los detalles de las confirmaciones, en orden cronológico, con la confirmación más reciente en la parte superior de la lista.
git log
Las confirmaciones se muestran en less
.
La confirmación se ha etiquetado con el nombre y la dirección de correo electrónico que proporcionamos anteriormente, y nuestro mensaje de confirmación también se registra.
Archivos de almacenamiento automático
La preparación de muchos archivos puede llevar un poco de tiempo. Un enfoque diferente es utilizar el -A
(todas) opción con add
.
Esto organiza automáticamente todos modificado archivos junto con todos actualmente sin seguimiento archivos La preparación de archivos sin seguimiento respeta la configuración de su archivo “.gitignore”. Git no organizará los archivos que le hayas dicho que no quieres que se incluyan. Finalmente, los archivos en el índice que ya no están en el directorio de trabajo son remoto del índice.
Claramente, el -A
opción puede hacer que sucedan muchas cosas a la vez. El --dry-run
La opción le brinda una vista previa de los cambios sin realizarlos realmente.
git add -A --dry-run
En nuestro ejemplo, organizará dos archivos existentes modificados y dos archivos nuevos. Sigamos adelante y usemos el -A
opción antes de usar la commit
dominio.
git add -A
git commit -m "Enhanced parsing"
Podemos ver que en total se modifican cuatro archivos. Dos de ellos son los archivos recién creados, que se enumeran.
Puesta en escena y compromiso al mismo tiempo
El commit
el comando tiene minúsculas -a
(todas) la opción. Esto realiza la puesta en escena y la confirmación de archivos en un solo paso.
El commit -a
etapas de opciones y compromisos modificados existente archivos, y elimina archivos del índice si se han eliminado de su directorio de trabajo. Él no organizar automáticamente los archivos sin seguimiento.
Como el add
comando, el comando de confirmación tiene un --dry-run
opción que le permite obtener una vista previa de sus acciones antes de ejecutarlo.
git commit -a --dry-run
Ahora vamos a ejecutar el comando.
git commit -a --dry-run
Los archivos están organizados y comprometidos para nosotros.
Comprometerse con una sucursal diferente
Si ha realizado algunos cambios en los archivos de su directorio de trabajo y se da cuenta de que no revisó la rama correcta, debe confirmar los cambios en la rama correcta sin afectar la rama actual.
Git no tiene un comando para comprometerse con una rama diferente. Pero puedes rectificar esta situación con un poco de destreza Git.
Usaremos el Git stash
comando para hacer una copia de los cambios. Luego revisaremos la rama correcta y aplicaremos los cambios desde el alijo. Para aplicar los cambios ocultos estamos usando el pop
mando en lugar de la apply
dominio. El pop
El comando aplica los cambios y también los elimina del alijo.
Hemos hecho algunos cambios en nuestro repositorio new-parser
rama. Deberían haber sido hechos en el classic-parser
rama.
git stash
git checkout classic-parser
git stash pop
Ahora podemos realizar un commit
y actualice esta rama.
git commit -a -m "Added pre-parser functions"
Si volvemos a la new-parser
branch podemos ver que está actualizado, lo que significa que los cambios se han eliminado de su directorio de trabajo, y su repositorio y archivos están sincronizados.
git checkout new-parser
git status
RELACIONADO: Cómo actualizar y mantener ramas separadas de Git
Hacer cambios en las confirmaciones
Si necesita mejorar su mensaje de confirmación, tal vez haya detectado un error tipográfico en él, o si olvidó preparar un archivo que debería haberse incluido en la confirmación, puede usar el --amend
opción de arreglar las cosas. La advertencia es que esto no debe usarse en confirmaciones que se han enviado a un repositorio remoto.
En nuestro último mensaje de confirmación, “fraze” debería haber sido “frase”. si usamos git log
podemos ver esto.
Para corregir esto, usaremos el --amend
opción como esta.
git commit --amend -m "Optimized phrase identification"
si usamos git log
una vez más, podemos ver que la confirmación anterior ha sido reemplazada por una nueva con el mensaje de confirmación corregido.
Si queremos agregar un archivo que olvidamos preparar, podemos confirmar ese archivo para que aparezca como parte de la confirmación anterior.
usaremos add
para preparar el archivo, luego haga una confirmación con el --amend
opción. El --no-edit
opción significa que no necesitamos proporcionar un nuevo mensaje de confirmación. El mensaje de confirmación anterior se conserva.
git add jibber.c
git commit --amend --no-edit
Eliminación de cambios de una confirmación
Si sin darte cuenta preparaste y confirmaste un archivo que no era tu intención, puedes eliminar ese archivo de la confirmación usando el reset
dominio. Restableceremos la confirmación de nuevo al área de ensayo o índice. Luego, eliminaremos el archivo y volveremos a confirmar el resto de los archivos.
Para restablecer la última confirmación en el área de preparación, usamos el reset --soft
dominio. HEAD~
es la abreviatura de “el compromiso detrás del HEAD de la línea de tiempo del compromiso del proyecto”, o en inglés, “el último compromiso”.
git reset --soft HEAD~
Para eliminar el archivo que no debería haber sido incluido, usamos el reset --mixed
dominio. Esto restablece esos cambios nuevamente en el directorio de trabajo, recreando el archivo modificado como un archivo no preparado y no confirmado.
git reset --mixed jibber.c
Necesitamos confirmar los otros archivos que quedan en el índice.
git commit -m "Experimental tweaks"
Los otros dos archivos que estaban en la confirmación original se vuelven a confirmar para nosotros.
RELACIONADO: Cómo corregir, editar o deshacer confirmaciones de Git (cambio del historial de Git)
Revertir una confirmación completa
A veces, deshacer una confirmación completa es lo más fácil de hacer. Devuelve el directorio de trabajo y el repositorio al estado en el que se encontraban antes de confirmar.
Necesitamos usar el ID de referencia hash de la confirmación. Podemos encontrar esto usando git log
:
Copie esa referencia y utilícela en el revert
dominio:
git revert e5bd4560aef8164c6ca9d6d4620b9db7f66aecc8
Esto abrirá su editor predeterminado para que pueda editar un mensaje de reversión. Hay un mensaje predeterminado ingresado para usted. Puede usar esto o editarlo a su gusto.
Cuando esté satisfecho con su mensaje de reversión, guarde el archivo y salga del editor. En nano, haces esto con “Ctrl+O” y “Ctrl+X”.
Usando git log
una vez más, podemos ver que se ha agregado un nuevo compromiso que deshace los cambios del compromiso revertido.
La navaja suiza Git
Obviamente, commit
es uno de los comandos Git más importantes. Puede hacer mucho, así que hay mucho que aprender. Familiarizarse con sus funciones menos utilizadas es tiempo bien invertido. Cuando necesite corregir un error, ahora mismo, se alegrará de haberse preparado con anticipación.
RELACIONADO: Cómo usar la fusión de Git
0 Comments