Conceptos clave
Git es un sistema de control de versiones distribuido que permite gestionar y rastrear cambios en el código fuente de proyectos de software. Aquí te explico algunos de los conceptos clave de Git:
1. Repositorio (Repository)
- Descripción: Un repositorio es un lugar donde se almacena el historial completo de un proyecto. Puede ser local en tu máquina o remoto en un servidor (por ejemplo, GitHub, GitLab).
- Ejemplo: Cuando clonas un proyecto de GitHub, estás creando una copia local de su repositorio.
2. Commit
- Descripción: Un commit es una instantánea del proyecto en un punto específico en el tiempo. Cada commit incluye un mensaje descriptivo y un hash único.
- Ejemplo:
git commit -m "Añadido nuevo módulo de autenticación"
3. Branch (Rama)
- Descripción: Una rama es una línea independiente de desarrollo. Permite trabajar en diferentes características o correcciones simultáneamente sin interferir con la rama principal.
- Ejemplo:
git branch nueva-caracteristica
crea una nueva rama llamadanueva-caracteristica
.
4. Merge
- Descripción: El comando
merge
se utiliza para combinar los cambios de diferentes ramas en una sola. Generalmente se hace para incorporar características desarrolladas en una rama secundaria a la rama principal. - Ejemplo:
git merge nueva-caracteristica
fusiona la ramanueva-caracteristica
en la rama actual.
5. Rebase
- Descripción: El comando
rebase
aplica los commits de una rama sobre otra rama base. Se usa para mantener un historial lineal y limpio. - Ejemplo:
git rebase master
aplica los cambios de la rama actual sobre la última versión demaster
.
6. Clone
- Descripción: El comando
clone
crea una copia completa de un repositorio remoto en tu máquina local. - Ejemplo:
git clone https://github.com/usuario/repositorio.git
clona el repositorio desde GitHub a tu máquina local.
7. Pull
- Descripción: El comando
pull
descarga y fusiona los cambios del repositorio remoto en tu rama actual. - Ejemplo:
git pull origin master
descarga los cambios desde la ramamaster
del repositorio remotoorigin
y los fusiona con tu rama actual.
8. Push
- Descripción: El comando
push
sube los commits de tu rama local al repositorio remoto. - Ejemplo:
git push origin master
envía los cambios de tu rama localmaster
al repositorio remotoorigin
.
9. Staging Area (Área de Preparación)
- Descripción: El área de preparación es una etapa intermedia donde seleccionas los cambios que deseas incluir en tu próximo commit. Los archivos deben ser añadidos al área de preparación antes de hacer un commit.
- Ejemplo:
git add archivo.txt
agregaarchivo.txt
al área de preparación.
10. Checkout
- Descripción: El comando
checkout
se utiliza para cambiar de rama o restaurar archivos en tu área de trabajo. - Ejemplo:
git checkout nueva-caracteristica
cambia a la ramanueva-caracteristica
.
11. Status
- Descripción: El comando
status
muestra el estado actual del repositorio, incluyendo cambios no preparados y ramas activas. - Ejemplo:
git status
muestra los archivos modificados y su estado.
12. Log
- Descripción: El comando
log
muestra el historial de commits en la rama actual, incluyendo mensajes, autores y hashes. - Ejemplo:
git log
muestra el historial de commits recientes.
13. Diff
- Descripción: El comando
diff
muestra las diferencias entre archivos o commits, ayudándote a ver qué cambios se han realizado. - Ejemplo:
git diff
muestra las diferencias entre los cambios no preparados y el último commit.
14. Tag
- Descripción: Un tag es una referencia a un commit específico, que generalmente se usa para marcar versiones o puntos importantes en el historial del proyecto.
- Ejemplo:
git tag v1.0
crea una etiqueta llamadav1.0
en el commit actual.
15. Reset
- Descripción: El comando
reset
se usa para deshacer cambios en el área de preparación y/o en el historial de commits. Puede modificar el estado de los archivos en tu directorio de trabajo. - Ejemplo:
git reset --hard HEAD~1
deshace el último commit y restablece el estado del directorio de trabajo al estado anterior.
16. Revert
- Descripción: El comando
revert
crea un nuevo commit que deshace los cambios introducidos por un commit anterior, sin alterar el historial del repositorio. - Ejemplo:
git revert 1234abcd
deshace los cambios del commit con el hash1234abcd
y crea un nuevo commit con esos deshaceres.
Ejemplos Prácticos
- Crear un nuevo repositorio y hacer el primer commit:
mkdir mi_proyecto cd mi_proyecto git init echo "Hola Mundo" > archivo.txt git add archivo.txt git commit -m "Primer commit"
- Trabajar en una nueva rama:
git checkout -b nueva-rama echo "Cambio en la nueva rama" > nuevo_archivo.txt git add nuevo_archivo.txt git commit -m "Añadido nuevo archivo en nueva-rama"
- Fusionar cambios de una rama en otra:
git checkout master git merge nueva-rama
- Sincronizar cambios con el repositorio remoto:
git push origin master
- Deshacer cambios no confirmados:
git checkout -- archivo_modificado.txt
Estos conceptos y comandos te ayudarán a comprender y manejar Git de manera efectiva para gestionar el código fuente y colaborar en proyectos de desarrollo.