Github
A platform for hosting and collaborating on code using Git version control.
GitHub est une plateforme web qui fournit un système de contrôle de version distribué (VCS) basé sur Git. Il sert de hub central pour la collaboration au développement logiciel, permettant aux développeurs de stocker, gérer, suivre les modifications et partager leur code. À la base, GitHub utilise Git, un VCS open-source créé par Linus Torvalds, qui permet un suivi efficace des modifications de code, la création de branches, la fusion et le retour aux versions précédentes. GitHub étend les fonctionnalités de Git en fournissant une interface conviviale, des capacités d'hébergement et une suite d'outils collaboratifs. Les fonctionnalités clés incluent les dépôts (où le code et son historique sont stockés), les pull requests (un mécanisme pour proposer des modifications et faciliter la revue de code), le suivi des problèmes (pour les rapports de bugs et les demandes de fonctionnalités), les wikis (pour la documentation de projet) et les tableaux de gestion de projet. GitHub prend également en charge les pipelines d'intégration continue/déploiement continu (CI/CD) via GitHub Actions, automatisant les processus de test et de déploiement. Son aspect de codage social favorise la communauté en permettant aux développeurs de forker (copier) des projets existants, de contribuer en retour et de découvrir de nouveaux logiciels. GitHub est largement adopté dans les projets open-source et les entreprises privées, agissant comme une norme de facto pour l'hébergement de code et le développement collaboratif dans le paysage moderne de l'ingénierie logicielle.
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;
🧠 Test de connaissances
🧒 Explique-moi comme si j'avais 5 ans
GitHub est comme une immense bibliothèque en ligne pour le code informatique. Il garde une trace de chaque modification apportée au code, permet à plusieurs personnes d'y travailler ensemble en toute sécurité, et les aide à partager leurs créations avec le monde.
🤓 Expert Deep Dive
GitHub fonctionne comme un service centralisé construit sur le protocole Git distribué. Alors que Git gère le contrôle de version local, la création de branches, la fusion et la gestion de l'historique, GitHub fournit l'infrastructure pour l'hébergement de dépôts distants, le contrôle d'accès et les flux de travail collaboratifs. Le mécanisme de pull request (PR) est au cœur du modèle collaboratif de GitHub. Un développeur crée une branche, apporte des modifications et soumet une PR, ce qui déclenche des vérifications automatisées (CI via GitHub Actions) et permet aux autres membres de l'équipe de revoir le code, de suggérer des modifications et finalement d'approuver la fusion dans la base de code principale. Ce flux de travail structuré améliore la qualité et la maintenabilité du code. L'API de GitHub permet une intégration étendue avec des outils et services tiers, permettant des pipelines DevOps sophistiqués. Les considérations de sécurité incluent la gestion des permissions d'accès aux dépôts (lecture, écriture, administration), la gestion des secrets pour la CI/CD et l'analyse des vulnérabilités. L'échelle et l'ubiquité de la plateforme en font un élément essentiel de l'infrastructure pour le développement logiciel mondial, avec des considérations architecturales relatives à la scalabilité, la disponibilité et l'intégrité des données primordiales pour Microsoft, sa société mère.