Control de versiones con Git

1. ¿Qué es Git? Git es un sistema de control de versiones distribuido que permite a múltiples desarrolladores trabajar en un proyecto simultáneamente sin interferir en el trabajo de los demás. Fue creado por Linus Torvalds en 2005 para el desarrollo del núcleo de Linux.

2. Repositorio (Repo) Un repositorio es el lugar donde Git almacena los archivos del proyecto y el historial de cambios. Puede ser local (en tu máquina) o remoto (en un servidor).

3. Clonación (Clone) Clonar un repositorio significa crear una copia local del repositorio remoto en tu máquina. Este es el primer paso para comenzar a trabajar con un proyecto existente.

git clone https://github.com/usuario/proyecto.git

4. Área de Preparación (Staging Area) Es un área intermedia donde se almacenan los cambios que se desean confirmar (commit). Los archivos modificados deben ser añadidos a esta área antes de ser confirmados.

git add archivo.txt

5. Confirmación (Commit) Es el proceso de guardar los cambios en el repositorio. Cada commit crea un punto en el historial del proyecto al que se puede volver en cualquier momento.

git commit -m "Mensaje del commit"

6. Ramas (Branches) Una rama es una línea de desarrollo independiente. La rama principal suele llamarse main o master. Se pueden crear nuevas ramas para trabajar en nuevas características o corregir errores sin afectar la rama principal.

git branch nueva-rama
git checkout nueva-rama

7. Fusión (Merge) Fusionar es el proceso de combinar cambios de diferentes ramas en una sola. Puede haber conflictos que deben resolverse manualmente.

git merge otra-rama

8. Pull El comando git pull se usa para actualizar tu repositorio local con los cambios del repositorio remoto. Es una combinación de git fetch (descargar cambios) y git merge (fusionar cambios).

git pull origin main

9. Push El comando git push se usa para enviar tus commits locales al repositorio remoto, compartiendo tus cambios con otros colaboradores.

git push origin main

10. Revertir Cambios (Revert) El comando git revert se usa para deshacer un commit específico. Esto crea un nuevo commit que invierte los cambios del commit seleccionado.

git revert <commit-id>

11. Rebase El comando git rebase se usa para mover o combinar una secuencia de commits a una nueva base. Es útil para mantener un historial de commits limpio y lineal.

git rebase main

12. Deshacer Cambios (Reset) El comando git reset se usa para deshacer commits locales o mover el HEAD a un commit anterior. Tiene varias opciones como --soft, --mixed y --hard dependiendo del nivel de reversión deseado.

git reset --hard <commit-id>

13. Etiquetas (Tags) Las etiquetas se usan para marcar puntos específicos en el historial, generalmente para indicar versiones de lanzamiento.

git tag -a v1.0 -m "Versión 1.0"
git push origin v1.0

14. Estado (Status) El comando git status muestra el estado de los archivos en el repositorio, indicando cambios no confirmados, archivos en el área de preparación, y archivos no rastreados.

git status

15. Historial (Log) El comando git log muestra el historial de commits del repositorio. Puede ser personalizado con diversas opciones para mostrar información específica.

git log

16. Fetch El comando git fetch descarga los cambios del repositorio remoto, pero no los fusiona con la rama actual.

git fetch origin