GitHub

A platform for hosting and collaborating on code using Git version control.

GitHubは、Gitをベースにした分散バージョン管理システム(VCS)を提供するWebベースのプラットフォームです。ソフトウェア開発のコラボレーションのための中心的なハブとして機能し、開発者がコードを保存、管理、変更を追跡、共有できるようにします。GitHubの核となるのは、Linus Torvaldsによって作成されたオープンソースVCSであるGitであり、コードの変更、ブランチ、マージ、以前のバージョンへのロールバックを効率的に追跡できます。GitHubは、使いやすいインターフェース、ホスティング機能、および一連のコラボレーションツールを提供することで、Gitの機能を拡張しています。主な機能には、リポジトリ(コードとその履歴が保存される場所)、プルリクエスト(変更を提案し、コードレビューを容易にするメカニズム)、課題追跡(バグレポートと機能リクエスト用)、Wiki(プロジェクトドキュメント用)、およびプロジェクト管理ボードが含まれます。GitHubは、GitHub Actionsを通じて継続的インテグレーション/継続的デプロイメント(CI/CD)パイプラインもサポートし、テストとデプロイメントプロセスを自動化します。そのソーシャルコーディングの側面は、開発者が既存のプロジェクトをフォーク(コピー)し、貢献し、新しいソフトウェアを発見できるようにすることで、コミュニティを育成します。GitHubは、オープンソースプロジェクトやプライベートエンタープライズ全体で広く採用されており、現代のソフトウェアエンジニアリングの状況におけるコードホスティングと共同開発の事実上の標準として機能しています。

        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;

      

🧠 理解度チェック

1 / 3

🧒 5歳でもわかるように説明

GitHubは、コンピュータコードのための巨大なオンラインライブラリのようなものです。コードに加えられたすべての変更を追跡し、多くの人々が安全に協力して作業できるようにし、彼らの作品を世界と共有するのを助けます。

🤓 Expert Deep Dive

GitHubは、分散Gitプロトコル上に構築された集中型サービスとして機能します。Gitはローカルバージョン管理、ブランチング、マージ、履歴管理を処理しますが、GitHubはリモートリポジトリホスティング、アクセス制御、およびコラボレーションワークフローのためのインフラストラクチャを提供します。プルリクエスト(PR)メカニズムは、GitHubのコラボレーションモデルの中心です。開発者はブランチを作成し、変更を加え、PRを送信します。これにより、自動チェック(GitHub ActionsによるCI)がトリガーされ、他のチームメンバーがコードをレビューし、変更を提案し、最終的にメインコードベースへのマージを承認できます。この構造化されたワークフローは、コードの品質と保守性を向上させます。GitHubのAPIは、サードパーティツールやサービスとの広範な統合を可能にし、高度なDevOpsパイプラインを実現します。セキュリティ上の考慮事項には、リポジトリアクセス権限(読み取り、書き込み、管理者)の管理、CI/CD用のシークレット管理、および脆弱性スキャンが含まれます。プラットフォームの規模と普及率は、グローバルなソフトウェア開発にとって重要なインフラストラクチャの一部となっており、その親会社であるMicrosoftにとっては、スケーラビリティ、可用性、データ整合性に関するアーキテクチャ上の考慮事項が最優先事項となっています。

🔗 関連用語

前提知識:

📚 出典