Alfonso Neil Jiménez Casallas
me quedo con esta imagen de la clase
Alexis Dorado Muñoz
Gracias por tu aporte.
Yerson Steven Rojas Barragan
gracias
Dominar el flujo de trabajo básico de Git es el primer paso para gestionar cualquier proyecto de software con confianza. Aquí se explica cómo crear archivos, pasarlos al área de staging y registrarlos con un commit, todo desde la terminal y con ejemplos prácticos.
¿Qué es la carpeta .git y por qué es importante?
Cuando ejecutas git init en una carpeta, se crea un directorio oculto llamado .git. Para visualizarlo puedes usar el comando ls -a [00:22]. Esta carpeta es el corazón del control de versiones: funciona como una bitácora que almacena un registro detallado de todos los cambios realizados en tus archivos. Sin ella, Git simplemente no existe dentro de tu proyecto.
Una vez inicializado el repositorio, cualquier archivo que crees dentro de esa carpeta puede ser rastreado. Por ejemplo, al escribir nano testing.txt y agregar contenido, ese archivo queda listo para ser gestionado por Git [00:42].
¿Cómo funciona el área de staging en Git?
El área de staging (también llamada stage) es un estado intermedio entre la creación de un archivo y su registro definitivo en el historial. Es un "limbo" donde los archivos esperan a ser confirmados o descartados [01:42].
¿Qué hace git status?
El comando git status muestra el estado actual de tus archivos [01:10]. Indica:
El cambio de color es el mejor indicativo: los archivos en rojo aún no están en stage, mientras que los verdes ya fueron agregados y esperan un commit [01:30].
¿Cómo agregar y quitar archivos del stage?
Para mover un archivo al área de staging se usa git add seguido del nombre del archivo, por ejemplo git add testing.txt [01:22]. También es posible agregar todos los archivos pendientes de golpe con git add . [03:35].
Si necesitas sacar un archivo del stage y regresarlo a su estado original, el comando es git rm --cache testing.txt [02:52]. Esto no elimina el archivo, solo lo retira del área de preparación.
Este mecanismo te permite decidir qué archivos sí y cuáles no quieres incluir en tu próximo registro de cambios [02:15].
¿Cómo hacer tu primer commit y registrar cambios?
Una vez que los archivos están en stage, el siguiente paso es ejecutar git commit -m "mensaje" [03:55]. El parámetro -m indica que vas a escribir un mensaje descriptivo entre comillas, explicando qué cambios realizaste. Por ejemplo:
bash git commit -m "nuevo archivo de testing"
Al presionar Enter, Git confirma la rama en la que trabajas, el mensaje del commit y un resumen de los cambios: archivos modificados, inserciones y eliminaciones [04:08].
¿Qué pasa cuando modificas un archivo ya registrado?
Si actualizas el contenido de un archivo que ya fue commiteado, al ejecutar git status la leyenda cambia de "creado" a modificado [05:42]. El proceso para registrar esa actualización es exactamente el mismo:
git add . para pasarlo al stage.git commit -m "primer archivo modificado" para registrarlo [06:02].Git distingue tres estados posibles para un archivo: creado, modificado o eliminado. Independientemente del estado, el flujo siempre sigue la misma secuencia.
¿Cómo verificar el historial de cambios?
El comando git log muestra la bitácora completa de commits realizados [05:12]. Cada entrada incluye el autor, la fecha y el mensaje asociado, lo que facilita rastrear la evolución del proyecto.
Para confirmar que no quedan cambios pendientes, basta con ejecutar git status y verificar que el mensaje indique que el árbol de trabajo está limpio [05:05].
Es importante señalar que este flujo aplica a cualquier tipo de archivo: no importa si son .txt, .php, .go, .js o incluso imágenes. Git los gestiona de la misma forma al hacer add y commit, sin importar la extensión [06:42].
Si ya completaste tu primer commit, comparte en los comentarios qué mensaje le pusiste y cómo te fue con el proceso.
Alfonso Neil Jiménez Casallas
me quedo con esta imagen de la clase
Alexis Dorado Muñoz
Gracias por tu aporte.
Yerson Steven Rojas Barragan
gracias
Ederson Felipe Lopez Bolivar
Luis Miguel Daraviña Henao
gracias excelente aporte
Silvia Mariana Montoya Saldana
Gracias!
los invito a ver esta respuesta que generó ChatGPT sobre cómo Git asigna los IDs a los commits:
Git asigna los IDs a los commits utilizando un hash SHA-1 (Secure Hash Algorithm 1). Este ID es una cadena de 40 caracteres que actúa como identificador único para cada commit. El proceso funciona de la siguiente manera:
1. Cálculo del hash
Git utiliza SHA-1 para generar el ID basándose en el contenido del commit. Esto incluye:
El comando interno que ejecuta Git toma todos estos datos, los serializa en un formato específico y calcula el hash SHA-1.
2. Formato del hash
El hash SHA-1 es una cadena hexadecimal de 40 caracteres. Por ejemplo:
4b825dc642cb6eb9a060e54bf8d69288fbee4904
3. Propiedades del ID
4. Ventajas del uso de SHA-1
Ejemplo del flujo
Supongamos que haces un commit con el siguiente contenido:
README.md con el texto "Hola mundo."Git combina esta información, calcula el SHA-1 y genera un ID único como:
9fceb02c9b50f0b2935f90f98bc9c3efb5c9a552
Cada vez que creas un nuevo commit, el ID será recalculado en función del nuevo contenido y la información asociada.
Nota: Aunque Git usaba SHA-1 originalmente, versiones recientes están adoptando SHA-256 para una mayor seguridad, debido a posibles vulnerabilidades en SHA-1.
Daniel Esteban Cifuentes Blandón
Para quienes no les funcione algunos comando y utilizan windows.
Es porque está utilizando comando que solo funcionan en linux, entonces a menos que se haga en wsl, Recomiendo hacerlo desde git bash, como ya tenemos git instalado, podemos usar la terminal de git bash y todos los comandos les van a servir. vamos a la carpeta que estamos manejando, clic derecho open git bash here y listo.
Paola Adriana Vega Hidalgo
Muchas graciasss!
Andres Manuel Muñoz Cárdenas
Una maravilla, muchas gracias.
Jonatan Martin
Y yo que pensaba que cuando agregabas un archivo con 'git add', no los podías quitar, sino que sí o sí debían ir a 'git commit'. He aprendido mucho hoy
Jhon Freddy Tavera Blandon
Totalmente de acuerdo, un nuevo poder aprendido en la terminal con (git --cached)
Luis Manuel Cieza Silva
Lo ideal sería usar git reset [file] para quitar un archivo del staging. Usar git rm --cached [file] es para cuando sin querer hiciste el commit de un archivo y quieres que git lo deje de trackear.
Andres Lopez
hola! yo uso normalmente <git add -p> qué me enlista todos los cambios, y voy aceptandolos uno a uno. esto me ayuda bastante para hacer un doble check y no se me pase algún log o comentario que no deba commitear
Leoni Bres Net Jimenez Quintero
1. Configuración inicial
git config --global user.name "Tu Nombre": Configura tu nombre de usuario para todos los repositorios en tu máquina.
git config --global user.email "tu@email.com": Configura tu correo electrónico para todos los repositorios.
2. Inicializar un repositorio
git init: Inicializa un nuevo repositorio Git en el directorio actual.
3. Clonar un repositorio remoto
git clone <url_del_repositorio>: Clona un repositorio remoto (por ejemplo, desde GitHub) a tu máquina local.
4. Ver el estado de los archivos
git status: Muestra el estado de los archivos en tu repositorio (qué archivos están modificados, qué se ha agregado al área de preparación, etc.).
5. Agregar cambios
git add <archivo>: Agrega un archivo específico al área de preparación.
git add .: Agrega todos los archivos modificados al área de preparación.
6. Hacer un commit
git commit -m "Mensaje del commit": Realiza un commit con los cambios que están en el área de preparación, agregando un mensaje descriptivo.
7. Ver el historial de commits
git log: Muestra un historial de los commits hechos en el repositorio.
git log --oneline: Muestra el historial de commits en una versión compacta (una línea por commit).
8. Ver diferencias entre cambios
git diff: Muestra las diferencias entre los archivos modificados y la última versión confirmada (commit).
git diff <archivo>: Muestra las diferencias de un archivo específico.
9. Cambiar de rama
git branch: Muestra todas las ramas locales en el repositorio.
git branch <nombre_de_rama>: Crea una nueva rama.
git checkout <nombre_de_rama>: Cambia a una rama específica.
git checkout -b <nombre_de_rama>: Crea y cambia a una nueva rama en un solo paso.
10. Fusionar ramas
git merge <nombre_de_rama>: Fusiona los cambios de otra rama a la rama actual.
11. Ver ramas remotas
git remote -v: Muestra las URL de los repositorios remotos asociados.
git fetch: Trae los cambios del repositorio remoto sin fusionarlos.
git pull: Trae los cambios del repositorio remoto y los fusiona con tu rama actual.
git push: Sube tus commits locales a un repositorio remoto.
12. Eliminar archivos o ramas
git rm <archivo>: Elimina un archivo del repositorio y lo marca para ser committeado.
git branch -d <nombre_de_rama>: Elimina una rama local.
13. Ver diferencias entre ramas o commits
git diff <rama1> <rama2>: Muestra las diferencias entre dos ramas.
git diff <commit1> <commit2>: Muestra las diferencias entre dos commits.
14. Deshacer cambios
git reset <archivo>: Elimina un archivo del área de preparación, pero mantiene los cambios locales.
git checkout -- <archivo>: Deshace los cambios en un archivo y lo devuelve a su última versión committeada.
git reset --hard: Deshace todos los cambios no confirmados y restablece tu repositorio a la última versión committeada.
15. Trabajar con etiquetas (tags)
git tag: Muestra todas las etiquetas del repositorio.
git tag <nombre_etiqueta>: Crea una nueva etiqueta en el commit actual.
git push origin <nombre_etiqueta>: Sube una etiqueta a un repositorio remoto.
Ronaldo Jiménez
Algunos apuntes personales:
Ezequiel Choque
Me gusto tu web!. Te seguire en github como motivacion para mi en empujarme en mis dias malos de lo que se puede lograr en la tecnologia. Gracias por compartir tus conocimientos.
Ronaldo Jiménez
Muchas gracias, Ezequiel, por tu comentario. La motivación es valiosa, pero puede desvanecerse con el tiempo. Por eso, la disciplina se convierte en el verdadero motor para alcanzar tus objetivos. #NuncaParesDeAprender
David Rugeles
cuando vean en la documentación símbolos como estos [texto] significa que el parámetro es opcional por el contrario si es <texto> significa que es obligatorio,
siempre después de un doble guion va una palabra completa ejemplo --help, si va un solo guion es una letra única, y se pueden sumar o colocar como parámetros individuales ejemplo: ls -l o ls -la, ls -l -a
Jose Burgos
Excelente aporte, muchas gracias.
Mario Eduardo Contreras Serrano
⚠️ Despues de esta clase me puse a averiguar profundamente los comandos que se ven en esta imagen y me di cuenta que es mucho mejor usar git restore file o git restore --staged file, en lugar de git rm --cached file o git rm --force file
rm tiene repercuciones en el repositorio pudiendolo afectar eliminando tus archivos, mientras que restore solo manipula lo que esta en stage
Gabriel Obregón
📌Git desde Cero
🚀 Iniciar un repositorio
🔹 git init → crea la carpeta oculta .git 📂 Función: guarda todo el historial de cambios.
📄 Crear y agregar archivos
1️⃣ Crear archivo → ✏️ nano testing.txt
2️⃣ Ver estado → 🔍 git status
3️⃣ Pasar a staging → 📥 git add testing.txt
👉 Staging = sala de espera para decidir qué entra al historial.
📂 Área de staging
📌 Archivos listos, pero no confirmados aún.
❌ Quitar de staging → git rm --cached archivo.txt
📝 Guardar cambios (commit)
💾 Confirmar en el historial:
➡️ git commit -m "mensaje descriptivo"
✍️ Mensaje claro: "nuevo archivo de testing"
📦 Múltiples archivos
📥 Agregar todos → git add .
✅ Luego:
📜 Historial de cambios
👀 Ver commits → git log 📑 Muestra:
👉 Es la bitácora del proyecto.
✏️ Modificar un archivo
1️⃣ Editar archivo
2️⃣ Git lo marca como modificado
3️⃣ Guardar cambios otra vez:
🗂️ Tipos de archivos en Git
🟦 Texto
🟨 Código
🖼️ Imágenes
⚙️ Otros formatos
👉 Todos se manejan igual:
📖 Resumen rápido:
Yunuen Estrada
Excelente aporte!, mil gracias Gabriel :)
Mathias Alvez Gimenez
Si usas PShell como terminal en windows El comando ls -a lo sustituimos por ls -Force ;)
Yazmin Figueroa
staging (o staged área): en git es una zona intermedia donde colocas los archivos que quieres incluir en tu próximo comit. Es como preparar una caja con solo los cambios que quieres guardar en la historia del proyecto.
Mauricio Montañez
En base a los comentarios de alumnos que he leído, Si eres principiante ( como yo) Recomiendo ampliamente regresarse un paso y tomar primero el curso de Configuración de Entorno de Desarrollo (Windows,Linux,Os). Justo tambien en los comentarios de ese curso , muchos ya habian hecho primero este curso y como que se cuatrapearon . Yo al seguir este ruta me esta funcionando
Hugo Alvarez
Y después tomar el curso "Terminal y linea de comandos", antes de entrar con este curso.
Dario Bublitz
💡 Idea 21 ⭐⭐⭐⭐⭐
Dominar Git es entender el flujo, no memorizar comandos.
Juan Diego Ussa Aponte
Para limpiar la terminal de forma mas practica: Ctrl + L
Gustavo Adolfo Escobar y Escobar
Buen aporte.
Juan Lagos
git config --global core.autocrlf true
Esto hará que Git convierta automáticamente LF a CRLF al clonar y commit en Windows. Para sistemas Unix, usa false para que no haya conversión.
</question>
ROMMEL DUAREZ SAENZ
de hecho el "Staged área" no está en la nube ni volando como dice.... sino que se guarda en la carpeta .git
Cristian Acevedo
git commit -am 'lo mejor de los dos mundo'
Billy Sican
lo que si cabe mencionar que git commit -am, unicamente funciona con archivos modificados y no con archivos nuevos, con archivos nuevos si o si tiene que ir con git add. y despues git commit -m
Luis Angel Frias Herrera
Comandos de git vistos en la clase
git init: Inicializa un repositorio Git.git status: Muestra el estado de los archivos en el repositorio.git add <archivo>: Añade un archivo al área de staging.git add .: Añade todos los archivos al área de staging.git commit -m "<mensaje>": Crea un commit con un mensaje descriptivo.git rm --cached <archivo>: Elimina un archivo del área de staging.git log : Muestra el historial de commits en tu repositorio Git. Te permite ver una lista de todos los commits realizados, incluyendo información como el identificador del commit, el autor, la fecha y el mensaje asociado.