9.0 Un poco de historia
Desde su creación, la herramienta Git DVCS tenía una rama por defecto llamada master
. Cada repositorio de Git tenía la rama master
, a menos que el desarrollador diera pasos explícitos para eliminarla, lo cual se hacía rara vez, ya que la rama master
juega un papel importante en el mundo del desarrollo de software.
El uso de los términos master
y slave
(amo y esclavo) en la industria informática atrajo la atención de todos en el verano de 2020, en medio de numerosas protestas y creciente agitación social. Durante la discusión pública, surgieron varias alternativas para master
, entre ellas default
y primary
. Sin embargo, el término más popular fue main
.
GitHub tomó medidas y dejó de usar el término master
al iniciar un repositorio de Git. El cambio de GitHub de master
a main
se puede realizar en la configuración de la cuenta Repositories o con el comando:
$ git branch -m master main
En las lecciones se sigue utilizando el término master
. Puedes obtener más información sobre la transición en los siguientes enlaces:
9.1 Qué es Git y para qué sirve
Git es un poderoso sistema de control de versiones, utilizado para rastrear cambios en el código fuente durante el desarrollo de software. Permite a los desarrolladores guardar diferentes versiones de archivos y coordinar el trabajo de múltiples personas en un proyecto compartido.
Conceptos básicos de Git:
Repositorio
Un repositorio (o "repo") es el lugar donde se almacena toda la historia del proyecto, incluyendo todos los cambios y versiones de archivos. En Git, un repositorio incluye el directorio de trabajo, el índice (o área de preparación) y la base de datos de objetos.
Commits
Un commit es el estado guardado del proyecto. Cada commit en Git contiene información sobre qué cambios se realizaron en el proyecto, por quién y cuándo. Los commits forman la historia del proyecto y permiten volver a cualquier versión anterior.
Ramas
Una rama (branch) es una línea de desarrollo independiente. Por defecto, Git crea la rama main (anteriormente master). Puedes crear nuevas ramas para desarrollar nuevas funcionalidades o correcciones, y luego fusionarlas de nuevo en la rama principal.
Merge y rebase
Merge y rebase son dos formas de integrar cambios de una rama a otra. Merge combina las historias de dos ramas, creando un nuevo commit, mientras que rebase traslada los commits de una rama a la cima de otra, alterando la historia de commits.
9.2 Comandos básicos de Git
Aquí tienes una tabla con los comandos básicos de Git para el control de versiones:
Comando | Descripción |
---|---|
git init | Inicializa un nuevo repositorio de Git en el directorio actual. |
git clone | Clona un repositorio desde una URL en un nuevo directorio. |
git add | Añade archivos al índice para el próximo commit. |
git commit | Confirma los cambios preparados en el repositorio. |
git push | Envía los cambios desde el repositorio local al remoto. |
git pull | Actualiza la rama actual con la última versión del repositorio remoto. |
git branch | Muestra, crea o elimina ramas. |
git merge | Fusiona cambios de la rama indicada en la rama actual. |
git rebase | Traslada los cambios a una nueva base (generalmente, otra rama). |
Estos comandos representan las herramientas básicas para trabajar con Git, permitiendo gestionar cambios de código, ramas y fusiones en proyectos de cualquier tamaño. Los trataremos con más detalle en las siguientes lecciones.
9.3 Tres lugares de almacenamiento del código
Cuando uses un sistema de control de versiones para tu código, tu código, grosso modo, se almacenará en tres lugares:
1. Repositorio remoto:
Este es un lugar centralizado para almacenar tu código, generalmente alojado en servicios como GitHub, GitLab o Bitbucket. Proporcionan almacenamiento centralizado de código y son la base para el trabajo colaborativo.
Los repositorios remotos permiten a los desarrolladores compartir sus cambios, sincronizar esfuerzos y llevar un historial de cambios del proyecto. Además, el repositorio remoto sirve como punto de integración para procesos de automatización, como construcción, pruebas y despliegue de aplicaciones.
2. Repositorio local:
Un repositorio local es tu copia personal del código, almacenada en tu computadora. En este repositorio puedes realizar todas las operaciones de Git (commits, ramas, fusiones) sin necesidad de estar conectado a Internet.
Los repositorios locales permiten a los desarrolladores trabajar de forma aislada de sus colegas, experimentar, crear nuevas funcionalidades o corregir errores, antes de que los cambios sean fusionados (merge) y enviados al repositorio remoto.
3. Directorio de trabajo:
El directorio de trabajo en tu computadora contiene los archivos actuales del proyecto en los que estás trabajando. Es el lugar donde puedes ver y modificar archivos, añadir nueva funcionalidad o corregir errores.
Después de realizar cambios, puedes añadirlos al índice (staging area), y luego confirmarlos en el repositorio local. El directorio de trabajo está vinculado a la rama actual en tu repositorio, y cambiar de ramas modifica el contenido del directorio de trabajo.
Estos componentes en conjunto proporcionan una infraestructura poderosa para la gestión de código fuente, permitiendo a los desarrolladores gestionar la historia del proyecto, colaborar y compartir la responsabilidad del código.
9.4 GitHub — el repositorio gratuito más popular
GitHub es la plataforma web más grande para alojar código fuente, utilizando el sistema de control de versiones Git. Fundada en 2008, rápidamente se convirtió en una de las herramientas clave para desarrolladores en todo el mundo.
GitHub permite a los usuarios crear repositorios para gestionar proyectos, controlar y rastrear cambios en el código, colaborar con otros desarrolladores y desarrollar en modo público o privado. Ofrece funcionalidades como forks, ramas, pull requests y merges, lo que permite a los desarrolladores colaborar fácilmente en proyectos.
GitHub también incluye funcionalidades para el seguimiento de problemas, solicitudes de funcionalidades, gestión de tareas y wikis para cada proyecto. La plataforma se integra con numerosas herramientas y servicios, ofreciendo amplias posibilidades para la automatización del desarrollo, pruebas y despliegue de aplicaciones.
GitHub apoya una comunidad de desarrolladores extensa, donde se discuten activamente las mejores prácticas de programación, gestión de proyectos y mucho más. Esto lo convierte no solo en una herramienta para la gestión de proyectos, sino también en un centro comunitario donde los desarrolladores pueden compartir conocimientos y experiencias.
9.5 Registro en GitHub
Paso 1. Visita https://github.com
Paso 2. Regístrate…
Paso 3. Haz clic en el botón "New" para crear un nuevo repositorio.
Paso 4. Indica el nombre del repositorio y configura sus parámetros.
Paso 5. Añade un archivo README al proyecto — lo necesitaremos más adelante.
Paso 6. Haz clic en "Create repository".
GO TO FULL VERSION