Ya hablamos de qué es Git y conocimos algunos conceptos básicos. Ahora pasaremos a probar los comandos básicos de Git. No sé cuántas partes vayan a ser, pero en la medida de lo posible estaré subiendo más contenido.
Inicializar un repositorio – git init
git init
comando crea un nuevo repositorio local. Es decir, “instala” la base de datos en el directorio que le indiques para comenzar a hacer el tracking del proyecto.
Aclaro que crea un repositorio local, porque cuando usas el comando git clone
también lo creas pero a partir de uno existente en un repositorio remoto. Lo que agrega un remote a la lista. Puedes comprobarlo con git remote -v
.
Regresemos. Para crear un repositorio, primero entra al directorio y ejecuta alguno de estos dos comandos equivalentes:
git init --initial-branch=main
git init -b main
Una vez hecho eso, puedes ejecutar git status
y revisar el estado.
Si quieres iniciar un repositorio y crear el directorio en un mismo comando:
git init -b main [nombre-directorio]
Ahora puedes entrar al directorio.
Si dentro de los directorios ejecutas ls -a
verás que hay un directorio llamado .git
. Esta es la base de datos del proyecto. Sobra decir que NO LA BORRES por nada.
Estado del repositorio – git status
Este comando sirve para mostrar el estado del proyecto: archivos modificados, los nuevos, eliminados o renombrados, así como los que están listos para ser agregados al siguiente commit.
Vamos usar un basiquísimo proyecto en Go (Golang) para ir viendo las diferentes etapas del tracking que Git lleva del proyecto.
Entonces tengo ya creado el repositorio con el comando de la sección anterior. Dentro del directorio tengo dos archivos: main.go
y go.mod
. No entraré en detalles sobre esto, solo haremos tracking en Git.
Como vemos, están los dos archivos en la sección llamada Untracked files
. Que es donde se colocan los archivos que Git no tiene registrados en su base de datos. Es decir, Git los detecta pero falta incluirlo para que empieze a darle seguimiento.
Para ello usamos el siguiente comando:
git add main.go go.mod
En el estado del proyecto ahora vemos la sección Changes to be committed
. Estos cambios están ahora en el Staging
, listos para ser enviados al Repository
. Esto lo haremos en un momento. Primero hacemos un pequeño cambio en main.go
y vemos el estado de nuevo.
Ahora nos muestra dos secciones: Changes to be committed
y Changes not staged for commit
. Vemos que el archivo main.go
está en las dos secciones. Esto es porque ya le hemos dicho a Git que vamos a subir ese archivo con cierto contenido, ahora que lo hemos cambiado, conserva el contenido anterior y nos indica que main.go
ha sido modificado y necesitamos agregarlo al Staging
para pasarlo al Repository
.
Agregar archivos al stating area – git add
Ya habíamos hablado del Staging area
en otro post. En esta zona están los archivos listos para confirmar nuestro paquete de cambios, es decir, son los cambios de los que estamos seguros que vamos a colocar en el historial de Git.
Este comando usa esta sintaxis:
git add [archivo1] [archivo2] [archivoN]
Si estamos seguros que todos los cambios que hemos hecho deben pasar al área Staging
podemos usar esto:
git add .
NOTA: Git detecta los cambios en cualquier carpeta del repositorio, es decir, al ejecutar git add .
toma los cambios de cualquier subdirectorio y los agrega, no solo del directorio actual.
Confirmar cambios – git commmit
Dentro de los comandos básicos de Git, confirmar los cambios del área Staging
es tal vez el más importante. Siginifica que vamos a agregar un registro a Git con el bundle de cambios. Esto nos daŕa un ID del movimiento que se agrega al log y podremos consultar más adelante.
La sintaxis es:
git commit -m "Mi mensaje de commit"
El switch -m
es opcional, pero lo mejor siempre es poner un mensaje para informar a nuestros compañeros lo que hicimos en esos cambios.
Acá la salida del comando nos indica que dos archivos se crearon en la base de datos de Git y ahora ya se encuentran dentro del historial de cambios del proyecto.
Hay un switch que se usa para agregar los cambios al Staging
y ahí mismo hacer el commit al Repository
.
git commit -a -m "mi mensaje"
Solo hay que tener cuidado porque esto agregaría todo los archivos modificados, eliminados y nuevos queGit detecte.
Ahora, imagina que te olvidaste de un pequeño cambio, pero no quieres agregar un nuevo registro al historial, porque fue insignificante o fue un error ortográfico que no amerita tener dos registros en el historial. Para ellos usamos:
git commit -amend -m "nuevo mensaje"
Este agrega el archivo al Staging
, hace el commit y modifica el mensaje.
NOTA: puedes usar solamente git commit -amend -m "mensaje"
para modificar solamente el mensaje, sin necesidad de tener archivos modificados.
Ver el historial en Git – git log
El comando git log
se usa para ver el historial de los commits que se han hecho durante el desarrollo del proyecto.
La salida del comando nos muestra:
- El hash de confirmación
- El autor y correo
- La fecha y hora del registro
- El mensaje que capturamos al momento de hacer el commit
Si usas Oh My ZSH! te agrega muchos alias que puedes consultar ejecutando el comando alias | grep "git log"
y verás las diferentes formas de mostrar los logs con diferentes formatos.
Puedes ver la lista en este link.
Este comando lo veremos en detalle más adelante, cuando avancemos en braches y merges.
Por lo pronto hasta aquí lo dejaremos. Estos han sido los comandos básicos de Git, con los que puedes iniciar a probar con tus proyectos.
Gracias por leer.