Git y GitHub (https://git.com) han revolucionado la forma en que los desarrolladores trabajan juntos y gestionan el control de versiones de sus proyectos. Git, un sistema de control de versiones distribuido, permite un seguimiento preciso de los cambios en el código fuente, mientras que GitHub, una plataforma basada en la web, facilita la colaboración y el trabajo en equipo. En este artículo, exploraremos las principales funcionalidades de GitHub y los comandos fundamentales y avanzados de Git para que puedas aprovechar al máximo estas poderosas herramientas.
¿Qué es Git?
Git es un sistema de control de versiones que rastrea los cambios en los archivos a lo largo del tiempo. Su diseño distribuido permite a los equipos de desarrollo colaborar de manera eficiente y mantener un historial preciso de todas las modificaciones.
Principales Funcionalidades de GitHub:
- Repositorios:
- Un lugar centralizado para almacenar tu código fuente.
- Ejemplo: github.com/tu-usuario/tu-repositorio.
- Branches (Ramificaciones):
- Permite trabajar en nuevas características sin afectar la rama principal.
- Ejemplo: Crear una nueva rama para una función específica:
git checkout -b nueva-funcionalidad
.
- Pull Requests:
- Proporciona un mecanismo para fusionar cambios entre ramas.
- Ejemplo: Crear un pull request desde una rama a la rama principal.
- Issues:
- Facilita el seguimiento de errores, mejoras y tareas pendientes.
- Ejemplo: Abrir un issue para informar sobre un error.
- Colaboradores:
- Invita a otros desarrolladores a contribuir a tu proyecto.
- Ejemplo: Añadir colaboradores a través de la configuración del repositorio en GitHub.
Acerca de la carperta .git
Cuando se crea un repositorio con el comando git init, o se clona desde github un repositorio, automáticamente se crea ka carpeta .git, esta carpeta por regla es una carpeta oculta y es de vital importancia para el sistema de control de versiones, si se borra, se perderá todo el historial de versiones guardado localmente y no se podrá recuperar.
Comandos Básicos de Git:
git init
Inicializa un nuevo repositorio Git.
git init
git add
Añade cambios al área de preparación, puedes añadir individualmente un archivo o todos los archivos sin especificar el nombre.
git add nombre-archivo
// or
git add .
git commit
Guarda los cambios en el repositorio.
git commit -m "Mensaje del commit"
Si agregamos -a al commit se agregan automáticamente todos los cambios
git commit -a -m "Mensaje del commit"
git status
Muestra el estado actual del repositorio.
git status
Comandos Avanzados de Git:
git branch:
Lista, crea o elimina ramas.
#(mostrar ramas)
git branch
#lista rama
git branch -a
#(crear rama)git branch nueva-rama
#elimina rama (se debe estar afuera de la rama para poder eliminar)
git branch -d
Obs: Al crear una rama no se posiciona directamente en ella, hay que cambiarse con el comando switch.
git switch:
Cambia de una rama a otra. Se debe escribir el nombre de la rama a cambiar.
git switch rama-a-cambiar
Además se puede crear y posicionarse dentro de la rama a la vez con el siguiente comando.
git switch -c rama-a-crear-y-luego-entrar
git merge
Fusiona cambios de una rama a otra.
git merge nombre-rama
git log
Muestra el historial de commits.
git log
git clone
Clona un repositorio existente.
git clone url-del-repositorio
git diff
Este comando ayuda a visulizar las diferencias de commits, branches, archivos, etc.
git diff
git config global
Este comando sirve para configurar algunas opciones de nuestro git, el siguiente comando sirve para configurar nuestras credenciales, si se ejecuta, luego a la siguiente vez nos preguntará nuestras credenciales y las almacenará en memoria.
git config --global credential.helper store
Acciones
Forzar el pull request (para quedar alineados con la rama principal de github)
Para forzar el pull request desde la rama main github y sobreescribir nuestra la rama en local.
git fetch --all
git reset --hard origin/main
Mezclar nuestra rama a la rama principal
Primero se debe cambiar a la rama principal y luego aplicar merge
git switch master
git merge mi-rama
Conclusión:
Con estas herramientas y comandos básicos y avanzados, estás listo para aprovechar al máximo Git y GitHub. Recuerda practicar regularmente para fortalecer tus habilidades y mejorar tu flujo de trabajo de desarrollo. ¡Feliz codificación!