Github
A platform for hosting and collaborating on code using Git version control.
GitHub es una plataforma web que proporciona un sistema de control de versiones distribuido (VCS) basado en Git. Sirve como un centro central para la colaboración en el desarrollo de software, permitiendo a los desarrolladores almacenar, gestionar, rastrear cambios y compartir su código. En su núcleo, GitHub utiliza Git, un VCS de código abierto creado por Linus Torvalds, que permite un seguimiento eficiente de las modificaciones del código, la creación de ramas (branching), la fusión (merging) y la reversión a versiones anteriores. GitHub amplía la funcionalidad de Git al proporcionar una interfaz fácil de usar, capacidades de alojamiento y un conjunto de herramientas colaborativas. Las características clave incluyen repositorios (donde se almacena el código y su historial), solicitudes de extracción (pull requests, un mecanismo para proponer cambios y facilitar la revisión del código), seguimiento de incidencias (issue tracking, para informes de errores y solicitudes de características), wikis (para la documentación del proyecto) y tableros de gestión de proyectos. GitHub también admite pipelines de Integración Continua/Despliegue Continuo (CI/CD) a través de GitHub Actions, automatizando los procesos de prueba y despliegue. Su aspecto de codificación social fomenta la comunidad al permitir a los desarrolladores bifurcar (copiar) proyectos existentes, contribuir y descubrir nuevo software. GitHub es ampliamente adoptado en proyectos de código abierto y empresas privadas, actuando como un estándar de facto para el alojamiento de código y el desarrollo colaborativo en el panorama moderno de la ingeniería de software.
graph LR
Center["Github"]:::main
Pre_cryptography["cryptography"]:::pre --> Center
click Pre_cryptography "/terms/cryptography"
Rel_cloud_computing["cloud-computing"]:::related -.-> Center
click Rel_cloud_computing "/terms/cloud-computing"
Rel_antimatter_propulsion["antimatter-propulsion"]:::related -.-> Center
click Rel_antimatter_propulsion "/terms/antimatter-propulsion"
Rel_arpanet["arpanet"]:::related -.-> Center
click Rel_arpanet "/terms/arpanet"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Prueba de conocimiento
🧒 Explícalo como si tuviera 5 años
GitHub es como una biblioteca en línea gigante para código de computadora. Lleva un registro de cada cambio realizado en el código, permite que muchas personas trabajen juntas de forma segura y les ayuda a compartir sus creaciones con el mundo.
🤓 Expert Deep Dive
GitHub funciona como un servicio centralizado construido sobre el protocolo distribuido Git. Mientras que Git se encarga del control de versiones local, la creación de ramas, la fusión y la gestión del historial, GitHub proporciona la infraestructura para el alojamiento de repositorios remotos, el control de acceso y los flujos de trabajo colaborativos. El mecanismo de solicitud de extracción (pull request) es fundamental para el modelo colaborativo de GitHub. Un desarrollador crea una rama, realiza cambios y envía una solicitud de extracción, lo que desencadena comprobaciones automatizadas (CI a través de GitHub Actions) y permite a otros miembros del equipo revisar el código, sugerir modificaciones y, en última instancia, aprobar la fusión en la base de código principal. Este flujo de trabajo estructurado mejora la calidad y la mantenibilidad del código. La API de GitHub permite una amplia integración con herramientas y servicios de terceros, lo que permite sofisticados pipelines de DevOps. Las consideraciones de seguridad incluyen la gestión de permisos de acceso al repositorio (lectura, escritura, administrador), la gestión de secretos para CI/CD y el escaneo de vulnerabilidades. La escala y la ubicuidad de la plataforma la convierten en una pieza crítica de infraestructura para el desarrollo de software global, con consideraciones arquitectónicas sobre escalabilidad, disponibilidad e integridad de datos que son primordiales para Microsoft, su empresa matriz.