Fundamentos de cómo guardar cambios de Git en el repositorio

hace 5 meses

Si has comenzado a explorar el mundo del control de versiones, es probable que ya hayas creado tu primer repositorio en Git y tengas una copia de trabajo de tus archivos. Sin embargo, el siguiente paso esencial es aprender a realizar cambios y confirmar esos cambios para preservar el estado de tu proyecto. A continuación, profundizaremos en cómo gestionar los cambios en Git de manera efectiva y en los conceptos que rodean este proceso.

Git es una herramienta poderosa que permite a los desarrolladores gestionar el flujo de trabajo de sus proyectos con eficacia. Uno de los aspectos más importantes de Git es la forma en que maneja los archivos. Cada archivo puede estar en uno de dos estados: rastreado o sin rastrear. Los archivos rastreados son aquellos que ya han sido confirmados en una instantánea anterior del proyecto, mientras que los archivos sin rastrear son aquellos que Git no tiene en cuenta. Este concepto de estado de archivo es fundamental para entender cómo interactuar con Git.

Índice
  1. Los estados de los archivos en Git
  2. Revisando el estado de tus archivos
  3. Cómo rastrear archivos nuevos
  4. Preparar archivos modificados
  5. Estado abreviado de los archivos
  6. Ignorar archivos no deseados
  7. Ver cambios específicos
  8. Confirmar tus cambios
  9. Saltarse el área de preparación
  10. Eliminar archivos
  11. Cambiar el nombre de los archivos

Los estados de los archivos en Git

Es importante comprender los diferentes estados que un archivo puede tener en Git:

  • Rastreado: Archivos que están bajo el control de versiones de Git, divididos en subcategorías como sin modificar, modificados y preparados.
  • Sin rastrear: Archivos que no han sido añadidos al seguimiento de Git y, por lo tanto, no forman parte de la última instantánea del proyecto.

Cuando clonas un repositorio, todos los archivos están en estado de "rastreado" y "sin modificar", ya que son copias recientes. A medida que realizas cambios, Git detectará estos cambios y los marcará como "modificados", esperando que decidas qué hacer a continuación.

Revisando el estado de tus archivos

El primer paso para gestionar cambios en Git es utilizar el comando git status. Este comando proporciona información crucial sobre los archivos en tu directorio de trabajo:

$ git status
On branch master
nothing to commit, working directory clean

Esto indica que tu directorio de trabajo está limpio, es decir, no hay cambios pendientes. Si añades un nuevo archivo, como un README, y ejecutas el comando nuevamente, verás algo como esto:

$ echo 'My Project' > README
$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    README

nothing added to commit but untracked files present (use "git add" to track)

En este caso, el archivo README está listado como "sin rastrear" y Git no lo incluirá en la próxima confirmación a menos que se le indique explícitamente.

Cómo rastrear archivos nuevos

Para comenzar a rastrear un archivo que no está en el sistema de control de versiones, utilizas el comando git add. Por ejemplo, para añadir el archivo README:

$ git add README

Si vuelves a verificar el estado, verás que el archivo ahora está preparado para ser confirmado:

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   README

Al confirmar, se guardará en el historial la versión del archivo que añadiste. El comando git add puede utilizarse tanto para archivos individuales como para directorios completos, añadiendo todos los archivos dentro de ellos.

Preparar archivos modificados

Cuando modificas un archivo que ya está rastreado, como CONTRIBUTING.md, y ejecutas git status, verás que el archivo se muestra como modificado:

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   README

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)

    modified:   CONTRIBUTING.md

Para preparar los cambios en CONTRIBUTING.md, simplemente utiliza:

$ git add CONTRIBUTING.md

Ahora ambos archivos estarán listos para ser confirmados. Es fundamental recordar que si modificas de nuevo un archivo que ya fue añadido, tendrás que volver a ejecutar git add para que los cambios más recientes sean considerados en tu próxima confirmación.

Estado abreviado de los archivos

Si bien git status proporciona información detallada, a veces puede ser demasiado extenso. Para obtener un estado más compacto, puedes usar:

$ git status -s

Esto te dará una salida simplificada que muestra el estado de los archivos con códigos abreviados, por ejemplo:

 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

Donde:

  • A: Archivo añadido.
  • M: Modificado.
  • ??: Sin rastrear.

Ignorar archivos no deseados

En algunos casos, puede que desees evitar que Git rastree ciertos archivos. Para ello, puedes crear un archivo llamado .gitignore que especifique los patrones de archivos que deseas ignorar:

*.[oa]
*~

Este archivo indicará a Git que ignore archivos de objeto (.o, .a) y archivos temporales. Es recomendable crear un .gitignore al inicio de tu proyecto para evitar la inclusión accidental de archivos no deseados en el repositorio.

Ver cambios específicos

Para ver exactamente qué cambios has hecho y cuáles están listos para confirmar, puedes utilizar git diff. Este comando te mostrará las diferencias línea por línea. Por ejemplo, si deseas ver qué cambios has realizado desde la última preparación, simplemente ejecuta:

$ git diff

Para ver los cambios que ya están preparados, usa:

$ git diff --staged

Esto te permitirá inspeccionar los cambios de una manera más detallada, asegurándote de que todo esté en orden antes de proceder con la confirmación.

Confirmar tus cambios

Una vez que estés satisfecho con los cambios preparados, puedes confirmarlos utilizando el comando:

$ git commit

Esto abrirá un editor de texto donde podrás ingresar un mensaje de confirmación. Este mensaje debe ser claro y descriptivo, ya que servirá como un registro de los cambios realizados en esa confirmación. Alternativamente, puedes añadir un mensaje directamente en la línea de comando de esta manera:

$ git commit -m "Descripción clara de los cambios"

Recuerda que solo se confirmarán los archivos que estén en el área de preparación. Cualquier archivo que no hayas añadido previamente seguirá siendo un cambio modificado en tu directorio de trabajo.

Saltarse el área de preparación

Si prefieres no pasar por el área de preparación, puedes omitirla utilizando el argumento -a al confirmar:

$ git commit -a -m "Mensaje de confirmación"

Esto preparará automáticamente todos los archivos rastreados que han sido modificados antes de realizar la confirmación, lo que simplifica el proceso.

Eliminar archivos

Para eliminar archivos de Git, utiliza el comando git rm. Este comando no solo elimina el archivo del área de preparación, sino que también lo borra de tu directorio de trabajo, asegurando que no vuelva a aparecer como "sin rastrear". Por ejemplo:

$ git rm archivo.txt

Si solo deseas eliminar el archivo del área de preparación y mantenerlo en tu directorio de trabajo, utiliza:

$ git rm --cached archivo.txt

Esto es útil si accidentalmente añadiste un archivo que debería estar en el .gitignore.

Cambiar el nombre de los archivos

Git no rastrea explícitamente los cambios de nombre, pero puedes utilizar el comando git mv para renombrar archivos de forma eficiente:

$ git mv archivo_antiguo.txt archivo_nuevo.txt

Esto actualizará automáticamente el estado del archivo en Git. Si renombraste un archivo fuera de Git, es recomendable usar git add y git rm para asegurarte de que Git reconozca el cambio.

Con estos fundamentos de Git, estarás bien preparado para gestionar los cambios en tus proyectos de manera efectiva. Aprender a manejar adecuadamente los estados de los archivos y los comandos de Git te permitirá mantener la integridad de tu trabajo y facilitar la colaboración con otros desarrolladores.

Lo que otros están leyendo ahora

Deja una respuesta

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

Subir