GitHub とは

完了

ここでは、ソフトウェア プロジェクトを管理してそれに投稿するために日常的に使用する主要な GitHub 機能について説明します。

GitHub フロー

GitHub によって、ソフトウェアの共同開発用プラットフォームが提供されるだけでなく、そのさまざまな機能の使用を最適化するように設計されたワークフローも提供されます。 このユニットは、重要なプラットフォーム コンポーネントの大まかな概要を示すものですが、まず「GitHub フローについて」を参照することをお勧めします。

Git と GitHub

GitGitHub を使用しながら両者の違いについて疑問を持つことがあるかもしれません。

Git は分散型バージョン管理システム (DVCS) です。これを使用すると、1 つのプロジェクトを複数の開発者や他の共同作成者が操作できます。 1 つ以上のローカル ブランチを操作し、それらをリモート リポジトリにプッシュする方法が提供されます。 Git は、使用しているコンピューター上でローカルに発生する GitHub に関連したすべてのことを行う役割を担います。 Git によって提供される主な機能は次のとおりです。

  • ローカル コンピューターにインストールして使用する
  • バージョン コントロールを処理する
  • ブランチをサポートする

Git の詳細については、「一般的な Git コマンドを使用する」を参照してください。

GitHub は、Git をコア テクノロジとして使用したクラウド プラットフォームです。 これにより、プロジェクトでの共同作業のプロセスが簡略化され、Web サイト、コマンドライン ツール、および開発者とユーザーが連携できるようにするための全体的なフローが提供されます。 GitHub は、Git のセクションで前述した "リモート リポジトリ" として機能します。

GitHub によって提供される主な機能は次のとおりです。

  • 発行
  • ディスカッション
  • Pull Request
  • 通知
  • ラベル
  • アクション
  • フォーク
  • プロジェクト

GitHub の詳細については、「GitHub を使ってみる」を参照してください。

issue

issueは、プロジェクトのコンシューマーと開発チーム間の通信のほとんどが発生する場所です。 "issue" を使用して、バグ レポート、機能の要求、ドキュメントの説明など、さまざまなトピックについてディスカッションすることができます。 issueが作成されると、所有者、ラベル、プロジェクト、およびマイルストーンに割り当てることができます。 また、issueをpull requestなどの GitHub アイテムに関連付けて、今後の追跡可能性を提供することもできます。

GitHub Issue that provides feedback to developers about a bug or feature suggestion.

GitHub のissueの詳細については、「issueのマスタリング」を参照してください。

通知

コラボレーション プラットフォームである GitHub では、所定のワークフローの中で行われる実質的にすべてのイベントに対して通知が提供されます。 これらの通知は、ユーザーの好みに合わせて微調整することができます。 たとえば、プロジェクトで発生したすべてのissueの作成と編集をサブスクライブしたり、指定したissueの通知だけを受け取ったりできます。 また、電子メール、Web とモバイル、またはその両方を使用して通知を受信するかどうかを決定することもできます。 さまざまなプロジェクト間ですべての通知を追跡するには、GitHub 通知ダッシュボードを使用します。

GitHub Notifications dashboard. GitHub provides an inbox that can be used by developers to stay up-to-date on changes across repositories.

GitHub の通知の詳細については、「通知の構成」を参照してください。

ブランチ

GitHub フローで変更を作成するには、ブランチを使用することをお勧めします。 ブランチにより、複数の人が制御された方法で同じコードを同時に操作できるように、分離が可能になります。 このモデルを使用すると、main などのクリティカルなブランチ間の安定性が確保され、開発者は、目標を達成するために必要なすべての変更を自由にコミットできます。 ブランチのコードが main ブランチの一部になる準備が整うと、pull requestを使用してマージできます。

GitHub flow with a feature branch. Changes made to a branch can be merged back into the main branch.

GitHub のブランチの詳細については、「ブランチについて」を参照してください。

コミット

コミットは、ブランチ上の 1 つ以上のファイルに対する変更です。 コミットが作成されるたびに、一意の ID が割り当てられ、時間および共同作成者と共に追跡されます。 これにより、issueやpull requestなど、ファイルまたはリンク アイテムの履歴を確認しているユーザーに明確な監査証跡が提供されます。

A list of GitHub commits to a main branch.

GitHub のコミットの詳細については、「プロジェクトの変更のコミットと確認」を参照してください。

pull request

pull requestとは、あるブランチからのコミットを別のブランチにマージする準備ができていることを伝えるために使用されるメカニズムです。 pull request を送信する開発者が、1 人以上のレビュー担当者に対して、コードを検証してマージを承認するように依頼することがよくあります。 これらのレビュー担当者は、変更に関するコメントを作成したり、独自の変更を追加したり、pull request自体を使用してさらなるディスカッションを行ったりできます。 変更が承認されたら (承認が必要な場合)、pull request のソース ブランチ (比較ブランチ) をベース ブランチにマージできます。

GitHub pull requests provide a way to get commits from one branch into another branch.

GitHub のpull requestの詳細については、「pull requestについて」を参照してください。

ラベル

ラベルにより、リポジトリ内で issuepull request を分類して編成する方法が提供されます。 GitHub リポジトリを作成すると、いくつかのラベルが自動的に追加されます。新しいものを作成することもできます。

ラベルの例:

  • バグ
  • ドキュメント
  • 重複
  • ヘルプ必要
  • 機能強化
  • 質問

GitHub labels can be used to categorize your GitHub repository issues and pull requests.

GitHub のラベルの詳細については、「ラベルについて」を参照してください。

アクション

GitHub のアクションにより、リポジトリにタスクの自動化とワークフローの機能が提供されます。 アクションを使用して、ソフトウェア開発ライフサイクルのプロセスを効率化し、継続的インテグレーションと継続的配置 (CI/CD) を実装できます。

GitHub Actions は、次のコンポーネントで構成されています。

  • ワークフロー: リポジトリに追加する自動化されたプロセス。
  • イベント: ワークフローをトリガーするアクティビティ。
  • ジョブ: ある 1 つのランナーで実行される一連のステップ。
  • ステップ: 1 つ以上のコマンド (アクション) を実行できるタスク。
  • アクション: 組み合わせてステップとすることができるスタンドアロン コマンド。 複数のステップを組み合わせてジョブを作成できます。
  • ランナー: GitHub Actions ランナー アプリケーションがインストールされているサーバー。

GitHub actions provide a way to automate the software development lifecycle.

GitHub のアクションの詳細については、「GitHub Actions 入門」を参照してください。

クローンとフォーク

GitHub には、リポジトリをコピーして作業できるようにする複数の方法が提供されています。

  • リポジトリのクローン - リポジトリをクローンすると、リポジトリのコピーとその履歴がローカル コンピューター上に作成されます。 リポジトリへの書き込みアクセス権を持っている場合は、ローカル コンピューターからリモート リポジトリ (オリジンと呼ばれます) に変更をプッシュできます。 リポジトリをクローンするには、git clone [url] コマンドまたは GitHub CLI の gh repo clone [url] コマンドを使用できます。
  • リポジトリのフォーク - リポジトリをフォークすると、自分の GitHub アカウントにリポジトリのコピーが作成されます。 親リポジトリはアップストリームと呼ばれ、フォークしたコピーはオリジンと呼ばれます。 リポジトリを GitHub アカウントにフォークしたら、それをローカル コンピューターにクローンできます。 フォークを使用すると、元のアップストリーム リポジトリに影響を与えることなく、プロジェクトに自由に変更を加えることができます。 アップストリーム リポジトリに変更を反映するには、フォークしたリポジトリからの pull request を作成します。 また、git コマンドを実行して、ローカル コピーとアップストリーム リポジトリとの同期を維持することもできます。

どのような場合にリポジトリをクローンし、リポジトリをフォークするのでしょうか。 リポジトリを使用するとき、書き込みアクセス権を持っている場合はローカル コンピューターにクローンできます。 そこから変更を加え、変更をオリジン リポジトリに直接プッシュすることができます。

別の所有者によって作成された github/example などのリポジトリを操作する必要があり、書き込みアクセス権を持っていない場合は、自分の GitHub アカウントにリポジトリをフォークしてから、そのフォークをローカル コンピューターにクローンすることができます。 これを視覚的に確認するために、自分の GitHub アカウントが githubtraining という名前であるとします。 GitHub Web サイトを使用すると、github/example または他のあらゆるリポジトリを自分のアカウントにフォークすることができます。 そこから、フォークしたバージョンのリポジトリをローカル コンピューターにクローンできます。 これらのステップを次の図に示します。

Forking a repository creates a copy of it in your GitHub account. You can then clone your forked copy of the repository to your local machine.

変更は githubtraining/example のローカル コピーに対して行い、その後に自分のリモートのオリジン リポジトリ (githubtraining/example) にプッシュすることができます。 それから、次に示すように、pull request を使用して github/exampleアップストリーム リポジトリに送信できます。

Local changes can be pushed to the origin repository and a pull request can then be created to get the changes into the upstream repository.

詳細については、「リポジトリをフォークする」を参照してください。

GitHub ページ

GitHub ページは、GitHub アカウントに直接組み込まれているホスティング エンジンです。 いくつかの規則に従って機能を有効にすることで、リポジトリから直接プルされた HTML およびマークダウン コードから生成された、独自の静的サイトをビルドすることができます。

GitHub Pages is a hosting engine available with your GitHub account. It can be used to host static sites generated from your repository.

詳細については、「GitHub ページ」を参照してください。