¡Hola! Si quieres aprender Git y GitHub, estás en el lugar correcto.

En este artículo encontrarás una breve introducción a Git y GitHub. Aprenderás por qué son herramientas muy poderosas y por qué deberías aprenderlas si tu meta es ser desarrollador.

Luego encontrarás un curso de 5+ horas de Git y GitHub en el canal de YouTube de freeCodeCamp en español en el cual puedes aprender los fundamentos en español con ejemplos prácticos y proyectos.

¡Comencemos! ✨

🔸 ¿Qué es control de versiones?

Primero veamos qué es control de versiones porque este concepto es esencial para Git y GitHub.

¿Nunca has deseado poder volver a una versión previa de un proyecto o registrar los cambios que has hecho?

Permíteme decirte que esto es posible con control de versiones.

Con un sistema de control de versiones, puedes mantener un registro de los cambios que has hecho en tus archivos y puedes tener varias versiones de tu proyecto en la misma computadora de forma simultánea. Esto te permite cambiar de una versión a otra de tu proyecto mientras haces cambios y actualizaciones.

Screenshot-2023-02-02-at-3.27.27-PM

Ese es el poder del control de versiones.

Puedes mantener una versión "experimental" de tu proyecto para desarrollar aspectos o funcionalidades nuevas al mismo tiempo que tienes la versión estable de tu proyecto en vivo para tus usuarios.

Screenshot-2023-02-02-at-3.30.45-PM

Dos de las herramientas de control de versiones más populares en la comunidad global de desarrolladores son Git y GitHub. Comencemos viendo los fundamentos de Git.

🔹 ¿Qué es Git?

Git es uno de los sistemas de control de versiones más populares en la comunidad de desarrolladores. Te prometo que aprender Git te será muy útil si tu meta es ser desarrollador.

Screenshot-2023-01-31-at-2.46.12-PM
Git (logo oficial).

Con Git puedes rastrear los cambios que realizas en tus archivos y trabajar con distintas versiones de tu proyecto en la misma computadora.

Al aprender unos cuantos comandos básicos de Git, puedes enfocarte en tus proyectos de desarrollo de software mientras Git se encarga de los detalles internos de las tareas importantes de control de versiones.

◼️ Conceptos básicos de Git

Los siguientes conceptos son esenciales para trabajar con Git:

Repositorio (Repository)
Un repositorio es donde Git almacena los archivos de tu proyecto y las distintas versiones de tus archivos. Un repositorio puede ser local o remoto. Un repositorio local se guarda de forma local en tu computadora. Un repositorio remoto se guarda en los servidores del servicio de hosting que escojas (por ejemplo, GitHub).

Screenshot-2023-02-02-at-10.57.53-AM

Directorio de trabajo (Working directory)
Este es el directorio del proyecto en el sistema de archivos, donde se guardan los archivos. Esta es, por ejemplo, la carpeta que abres en tu editor de código o IDE para trabajar con tus archivos.

Área de preparación (Staging area)
Este es el conjunto de archivos y cambios que serán incluidos en el siguiente commit. Podemos agregar y remover archivos de esta área si es necesario.

Screenshot-2023-02-09-at-8.21.55-AM

Commit
Un commit es como una "foto" de tu proyecto en un momento en particular. Un commit registra un cambio que se realizó en el proyecto. Tú escoges cuándo crear un commit y qué incluir en el commit.

💡 Tip: Para describir los cambios registrados en un commit, escribimos un mensaje de commit que podemos verificar al trabajar en el proyecto.

commits

Rama (Branch)
Una rama es una línea independiente de desarrollo de un proyecto que es administrada y rastreada por Git. Cada proyecto iniciar con una rama por defecto que normalmente llamamos main. Podemos crear una rama para trabajar en un aspecto nuevo del proyecto sin afectar la versión principal.

branch

Fusionar (Merge)
Podemos combinar o fusionar (merge) ramas si necesitamos incorporar los cambios que hicimos en una rama en otra rama. Esto es lo que normalmente hacemos cuando un aspecto nuevo está listo para ser incorporado a la versión en vivo del proyecto.

merge

◼️ Git Bash

Durante el curso trabajaremos con Git Bash, una herramienta de línea de comandos para Windows que nos permite ejecutar comandos de Git.

💡 Tip: Bash significa Bourne Again Shell. Un bash es una aplicación usada para interactuar con el sistema operativo de una computadora a través de comandos.

image-387
Captura de pantalla de Git Bash (Windows)

¡Genial! Ahora que ya sabes más sobre Git, veamos los fundamentos de GitHub. Git y GitHub trabajan juntos para crear el flujo de trabajo que los desarrolladores de software usan diariamente.

🔸 ¿Qué es GitHub?

Screenshot-2023-02-02-at-11.02.14-AM
Sitio web oficial de GitHub

Cuando trabajas con Git, todo lo que guardes en tu repositorio solo estará almacenado de forma local. Solo tú puedes tener acceso a tu repositorio y a tus cambios.

Esto puede ser exactamente lo que necesitas cuando estás trabajando en un proyecto personal.

Sin embargo, si eres parte de un equipo, deberás colaborar con otros desarrolladores para modificar el mismo código fuente, lo cual podría ser muy problemático si no existiera una forma rápida y fácil de tener acceso a los cambios realizados por otros desarrolladores.

¡Aquí es donde GitHub viene al rescate!

Cuando creas un repositorio de GitHub, todos los miembros del equipo pueden tener acceso a este repositorio. Pueden crear copias locales (clones) en sus computadoras.

Screenshot-2023-01-31-at-4.20.06-PM

Estos clones son muy útiles porque los desarrolladores pueden trabajar con estos archivos de forma local y realizar cambios y commits para luego enviarlos a GitHub.

Cuando el repositorio remoto recibe cambios nuevos, otros desarrolladores del equipo pueden incorporar los cambios en sus repositorios locales y asegurarse de forma rápida y sencilla si no existen conflictos entre sus cambios y los cambios hechos por sus compañeros.

Ese es el poder de Git y GitHub. Ahora veamos aspectos importantes de Git y GitHub para veas por qué deberías aprenderlos si tu meta es ser desarrollador.

🔸 ¿Por qué deberías aprender Git y GitHub?

Git y GitHub son usados en muchas áreas y organizaciones a nivel mundial.

💡 Tip: En freeCodeCamp, usamos Git y GitHub para actualizar la versión en vivo de la plataforma que puedes ver y usar diariamente.

El sitio web oficial de Git menciona que las siguientes compañías y proyectos usan Git:

  • Google
  • Microsoft
  • Twitter
  • LinkedIn
  • Netflix
  • PostgreSQL
  • Android
  • Linux
  • Ruby on Rails
  • Gnome
  • Eclipse

Según la encuesta Stack Overflow Developer Survey 2022:

No existe otra tecnología que sea tan ampliamente usada como Git. Especialmente entre los desarrolladores profesionales.

Texto original en inglés:

No other technology is as widely used as Git. Especially among Professional Developers.

Los resultados son muy consistentes. 93.87% de los 71,379 desarrolladores que respondieron esta pregunta en la encuesta usan Git como su sistema de control de versiones.

Screenshot-2023-01-30-at-6.59.27-PM
Los resultados de la Stack Overflow Developer Survey 2022 para la categoría Sistemas de control de versiones. 93.87% de los encuestados escogieron Git como su sistema de control de versiones.

Además de ser una herramienta muy valiosa para proyectos reales, Git es uno de los sistemas de control de versiones más populares entre los estudiantes que están aprendiendo a programar.

Entre los encuestados que están aprendiendo a programar, 81.87% usan Git.

learning-to-code
Los resultados de la Stack Overflow Developer Survey 2022 de la categoría Sistemas de control de versiones. 81.87% de los encuestados que están aprendiendo a programar usan Git.

En base a estos resultados, puedes ver que Git es una herramienta muy poderosa para desarrolladores de software de todos los niveles de experiencia.

Cuando combinas el poder de Git con el poder de GitHub, desatas el verdadero poder del control de versiones.

Por ejemplo, el repositorio de freeCodeCamp es un proyecto open-source (de código abierto) alojado (hosted) en GitHub.

GitHub
El repositorio de freeCodeCamp en GitHub.

El sitio web oficial de GitHub también menciona que las siguientes compañías alojan sus repositorios en GitHub:

  • Stripe
  • Pinterest
  • KPMG
  • Mercedes-Benz
  • Procter & Gamble
  • Telus

Según la encuentra Stack Overflow Developer Survey 2022:

GitHub es el sistema de control de versiones más popular tanto para uso personal como para uso profesional.

Texto original en inglés:

GitHub is the most popular Version Control for both personal and professional use.

En los resultados de esta encuesta, puedes ver que GitHub es la plataforma de control de versiones más popular en la comunidad de desarrolladores.

Screenshot-2023-01-30-at-7.06.09-PM
Los resultados de la Stack Overflow Developer Survey 2022 en la categoría de Plataformas de control de versiones.

Otro aspecto genial de GitHub para los estudiantes que están aprendiendo a programar es que tiene un calendario que te permite rastrear tus contribuciones. Este es un calendario interactivo con un cuadrado pequeño que representa cada día.

Si realizaste más contribuciones en un día en particular, verás un tono más oscuro de verde en su cuadrado correspondiente.

image-386
Calendario de contribuciones mostrado en este artículo de GitHub.

Este calendario interactivo es usado frecuentemente por los reclutadores para evaluar tu experiencia, proyectos y contribuciones.

Cuando contribuyes activamente a proyectos alojados en GitHub, creas una línea del tiempo de contribuciones que los reclutadores pueden revisar para ver cómo te comunicas con otros desarrolladores y cómo enfrentas retos.

Básicamente, cuando contribuyes en GitHub, vas creando gradualmente tu portafolio de desarrollador mientras adquieres experiencia con proyectos reales.

¡Genial! Ahora que ya conoces más sobre Git y GitHub, veamos el contenido del curso.

🔸 Contenido del curso

Este es un breve resumen de los temas que veremos durante el curso. Al culminar el curso, podrás trabajar con Git y GitHub en tus proyectos personales y profesionales.

Trabajaremos con archivos de texto y con archivos de código sencillos, así que puedes tomar el curso independientemente de los lenguajes de programación que hayas aprendido hasta el momento e incluso si estás iniciándote en el mundo de la programación.

💡 Tip: Mi meta es que aprendas el flujo de trabajo Git y GitHub paso a paso de una forma que será completamente independiente del contenido de los archivos. De esta forma, podrás aplicar tu conocimiento a cualquier proyecto de código.

Introducción a Git

  • ¿Qué es Git? Aplicaciones reales.
  • Concepto de repositorio.
  • Cómo instalar Git y Git Bash.
  • Comandos de Git Bash.
  • Configurar usuario y correo de Git.

Repositorios de Git

  • Cómo crear un repositorio de Git.
  • Directorio de trabajo.
  • Área de preparación.
  • Directorio .git.
  • Comando git status.

Commits

  • ¿Qué es un commit?
  • Cómo crear un commit
  • Mostrar el historial de commits con git log.
  • Configurar un editor de Git (Visual Studio Code).
  • Cambiar el commit más reciente.
  • Deshacer un commit.

Ramas (Branches)

  • ¿Qué es una rama?
  • Cómo crear una rama.
  • La rama main.
  • Cambiar de rama.
  • Cambiar el nombre de una rama.
  • Eliminar una rama.
  • Crear commits en una rama.
  • Ver el historial de commits de una rama.

Fusionar Ramas (Merging)

  • ¿Qué es merging?
  • Cómo fusionar dos ramas.
  • Conflictos al fusionar ramas (merge conflicts).
  • Cómo eliminar una rama luego de fusionarla con main.

Introducción a GitHub

  • ¿Qué es GitHub?
  • Crear tu cuenta y perfil.
  • Personalizar los ajustes de un repositorio.
  • Cambiar el nombre de un repositorio.
  • Eliminar un repositorio.

El flujo de trabajo de Git y GitHub

  • Clonar un repositorio.
  • Enviar (push) cambios a GitHub.
  • Recibir (pull) cambios a GitHub.
  • Validación HTTPS para enviar cambios.
  • git pull vs. git fetch
  • Bifurcar un repositorio (fork).
  • Clonar un repositorio bifurcado.
  • ¿Qué es un pull request?
  • Iniciar y escribir un pull request.
  • Actualizar un repositorio bifurcado.
  • ¿Qué es un issue?
  • Cómo crear un issue.
  • Plantillas de issues.
  • Etiquetas para issues y pull requests.
  • Clonar ramas remotas nuevas en un repositorio local.
  • Eliminar ramas remotas y locales.

Veremos cómo funcionan estos principios y conceptos en un proyecto real: el repositorio de freeCodeCamp en GitHub.

GitHub
Repositorio de freeCodeCamp en GitHub

También crearemos proyectos pequeños mientras aprendes estos temas paso a paso.

📌 Curso de Git and GitHub

Genial. Ahora que ya sabes más sobre Git y GitHub y lo que aprenderás durante el curso, te invito a tomar el curso en español:

✍️ Curso creado por Estefania Cassingena Navone. Puedes seguirla en Coding with Estefania y @EstefaniaCassN.

Espero que te guste el curso y que te sea de utilidad para tomar tus primeros pasos en el mundo del control de versiones.

También te invitamos a continuar aprendiendo con nuestros cursos en español: