# GitHub とは

GitHub は、計画作業からソフトウェアの展開と運用まで、ソフトウェア開発プロセス全体をサポートするプラットフォームです。

GitHub は、ソフトウェアを構築するためのプラットフォームです。 新しいプロジェクトを開始する場合でも、既存のプロジェクトに貢献する場合でも、 GitHub はソフトウェア開発ライフサイクル (SDLC) のすべての段階で必要なツールとワークフローをまとめます。

## GitHub およびソフトウェア開発ライフサイクル

ソフトウェア開発ライフサイクルでは、最初のアイデアから運用環境でのコードの実行まで、ソフトウェア プロジェクトが進むステージについて説明します。
GitHub は、そのプロセスのすべての段階をサポートするように設計されています。

\| 段階 |
GitHub でできること |
\|---|---|
\| Plan | 作業を追跡し、マイルストーンを設定し、長期的なプロジェクトを整理します。 |
\| Create | コードを記述して保存し、新しい機能を安全に開発し、変更の明確なタイムラインを作成します。 |
\| Review | プロジェクトに変更を提案し、レビュー担当者と更新プログラムについて話し合い、フィードバックを適用します。 |
\| Test | すべての変更をマージする前に、チェックを自動化して検証します。 |
\| 展開 | 自動展開ワークフローとリリース管理を使用してソフトウェアを出荷します。 |
\| Operate | アプリケーションを監視し、依存関係を管理し、セキュリティの問題を見つけて修正します。 |

すべてのステージを一度に使用する必要はありません。 多くの人がリポジトリといくつかの問題から始めて、プロジェクトの拡大に合わせてプラットフォームの使用を拡大します。

## GitHub と Git

GitHub は、オープンソース ソフトウェアである Git に基づいています。

Git は、ファイルへの変更を追跡するバージョン 管理システムです。 プロジェクトの独自のコピーで作業し、変更履歴を記録し、作業内容を他のユーザーの変更と安全にマージすることができます。

GitHub は、 **リポジトリと呼**ばれる Git プロジェクトをクラウドでホストし、チームの共同作業を容易にする計画およびコラボレーション ツールを追加することで、Git 上に構築されます。

Git の詳細については、「 [Git について](/ja/get-started/using-git/about-git)」を参照してください。

## GitHubは私に適していますか?

GitHub は、学生、開発者、プロジェクト マネージャー、セキュリティ チーム、データ サイエンティスト、研究者、人事、法務スタッフなど、あらゆる規模の組織で使用されています。

GitHubを使用する最も一般的な理由は次のとおりです。

* バージョン 管理を使用してコードを格納および管理します。
* コードを記述し、コードを確認し、セキュリティの脆弱性と更新プログラムを管理します。
* プロジェクトで共同作業とソーシャル化を行います。
* オープンソースソフトウェアに貢献します。
* プロジェクトを追跡および管理します。
* CI/CD、テスト、デプロイなどのソフトウェア開発ワークフローを自動化します。
* 作業を紹介して共有します。
* ソフトウェア パッケージを発行してリリースします。
* ドキュメントと Web サイトをホストします。
* ソフトウェア開発コミュニティやディスカッションに参加します。
* AI を利用したツールとエージェントを使用して、コード開発の記述、理解、レビュー、自動化を迅速に行うことができます。

## どこから始めるか

GitHubが初めてで、Git に慣れていない場合は、[体験してみる](/ja/get-started/start-your-journey) カテゴリの記事を参照することをお勧めします。 この記事では、ソフトウェア開発者が GitHubを使用して実行する一般的なタスクを実行する方法について説明します。次に例を示します。

* **ソフトウェア プロジェクトのリポジトリを作成** し、 GitHubにコードを保存します。 [GitHubでのプロジェクトのリポジトリの作成](/ja/get-started/start-your-journey/creating-a-repository-for-your-project-on-github) を参照してください。
* 問題を作成し、プロジェクトの作業を追跡して、作業を**計画**します。
* **ローカル コンピューター上のコードに接続** し、 GitHub Desktop アプリケーションを使用して Git でコードの変更を管理します。
* **コードを記述して保存し**、必要に応じて AI アシスタントとペアリングし、変更を GitHubと同期します。
* **提案したコード変更をレビュー**するには、マージする前にプル リクエストを作成し、自分の変更を確認します。
* 自動展開ワークフローを使用して **Web サイトを**デプロイすると、ソフトウェア プロジェクトの基本的な Web サイトを発行できます。