¿Qué es Git?

En este primer episodio del Tutorial de Git discuto qué es Git, por qué se ha vuelto tan popular en la industria del software y qué ventajas nos aporta frente a otros sistemas de control de versiones ya existentes.

Git es un sistema de control de versiones. Un sistema de control de versiones permite llevar un seguimiento de las versiones del código fuente de nuestro programa. Es verdad, de todos modos, que esto es una interpretación un poco liberal y que podemos agregar control de versiones a cosas que no son código fuente.

Sin embargo, el principal lugar donde como desarrolladores de software vais a encontrar utilidad al control de versiones es precisamente a medida que vamos fabricando una aplicación o proyecto de software, porque nos va a permitir llevar un historial que permita conocer por qué una función se ha roto si antes funcionaba, o poder llevar un evolutivo que permita seguir desarrollando funciones nuevas mientras tenemos en un servidor una versión antigua que sabemos que no tiene errores.

Otra de las utilidades de un sistema de control de versiones es poder trabajar en varias líneas temporales al mismo tiempo. Imagina que estás trabajando en un proyecto de software para un cliente (o simplemente, trabajas en un equipo de desarrollo de software modesto a órdenes de tus jefes no técnicos) y continúas desarrollando funciones nuevas para tu producto, pero de repente te entra un reporte de última hora: parece que la página web está fallando. Cuando uses un sistema de control de versiones, vas a poder archivar temporalmente el trabajo que estabas haciendo y que todavía no está terminado de forma segura, cambiar a otra línea temporal en la que nunca escribiste ese código y que refleja la versión del software exacta que está usando tu cliente o los usuarios de tu producto, hacer los arreglos necesarios, y una vez el fuego pase, regresar a la otra línea de tiempo, rescatar lo que estabas programando antes y seguir trabajando en ese código.

Puedes imaginarlo como ese copia y pega de archivos y carpetas tipo Copia de - proyecto - version definitiva (2).zip, pero mejor hecho y con comandos que te permitan realmente sacar información y llevar un historial detallado del código a medida que va pasando el tiempo.

En particular, Git es un software usado para el control de versiones que se ha vuelto extremadamente popular. Git no es necesariamente la herramienta más fácil de usar (para eso está este tutorial), pero es verdad que es más simple y sencillo de desplegar y mantener que las alternativas que existían antes. Esto sumado a la popularidad de sitios para compartir código, como GitHub o GitLab, ha hecho que prácticamente se vuelva el sistema de control de versiones de referencia para empresas, instituciones educativas y movimiento open source.

En las siguientes lecciones de este curso de Git te iré contando cómo puedes empezar a usarlo y qué funciones son las que te conviene conocer.

Lista de reproducción
  1. 1
    ¿Qué es Git?
    4 minutos
  2. 2
    Cómo instalar Git
    9 minutos
  3. 3
    Creando tu primer commit
    9 minutos
  4. 4
    Qué es el staging area
    10 minutos
  5. 5
    Cómo deshacer modificaciones de archivos
    7 minutos
  6. 6
    Cómo deshacer un commit con reset
    7 minutos
  7. 7
    Cómo revertir un commit con revert
    7 minutos
  8. 8
    Introducción a las ramas
    6 minutos
  9. 9
    Cómo crear y modificar ramas
    6 minutos
  10. 10
    Commits bajo el workflow Feature Branch
    6 minutos
  11. 11
    Cómo fusionar ramas con merge
    6 minutos
  12. 12
    Fusiones conflictivas
    9 minutos
  13. 13
    Cómo construir alias
    7 minutos
  14. 14
    Más sobre conflictos
    9 minutos
  15. 15
    Etiquetas
    7 minutos
  16. 16
    Tags anotados
    9 minutos
  17. 17
    git stash: esconder cambios
    6 minutos
  18. 18
    Introducción a remotos
    5 minutos
  19. 19
    Pusheando a un remoto
    6 minutos
  20. 20
    Clonando y haciendo pull
    6 minutos
  21. 21
    Fetch y pull rebases
    8 minutos
  22. 22
    Rebase
    7 minutos
  23. 23
    Rebase interactivo
    6 minutos
  24. 24
    Master, main y otros nombres de rama
    9 minutos
  25. 25
    git switch
    9 minutos
  26. 26
    git-restore
    10 minutos
  27. 27
    git-grep
    11 minutos
  28. 28
    Gitignore
    11 minutos
  29. 29
    El flag --patch
    9 minutos
  30. 30
    git-apply y parches en bruto (advanced)
    9 minutos
  31. 31
    Merge octopus (advanced)
    9 minutos
  32. 32
    Conventional commits
    12 minutos
  33. 33
    Merge and squash (GitLab / GitHub...)
    6 minutos
  34. 34
    git merge --squash
    7 minutos
  35. 35
    git-bisect
    8 minutos
  36. 36
    git-blame
    6 minutos
  37. 37
    git-reflog
    10 minutos
  38. 38
    Git para la Bash
    11 minutos
  39. 39
    Submódulos (parte 1)
    7 minutos
  40. 40
    Submódulos (parte 2)
    10 minutos
  41. 41
    Otros clientes Git (último episodio)
    9 minutos