⑪【初心者向け】GitHubの使い方完全ガイド – 登録からプルリクまで

: GitHubとは? – エンジニア必須のバージョン管理システム

「GitHubって、よく聞くけど、何ができるの?」 「エンジニアには必須って言うけど、本当に必要なの?」 「GitとGitHubって、何が違うの?」

GitHubは、エンジニアにとって、今やなくてはならないツールの一つです。しかし、その機能や使い方がよく分からず、敬遠している方もいるかもしれません。

この章では、GitHubとは何か、GitHubで何ができるのか、Gitとの違い、料金プラン、競合サービスとの比較など、GitHubの基礎知識を詳しく解説していきます。

バージョン管理システムとは? – Gitの仕組みとメリット

GitHubを理解するためには、まず、バージョン管理システムについて理解する必要があります。

  • バージョン管理システムとは:
    • ファイル(主にソースコード)の変更履歴を記録・管理するためのシステム。
    • 過去のバージョンに戻したり、変更内容を比較したり、複数人で共同開発したりすることができる。
  • Gitとは:
    • 分散型のバージョン管理システム。
    • 高速で効率的な処理、柔軟なブランチ機能などが特徴。
    • 現在、最も広く利用されているバージョン管理システム。
  • Gitの仕組み:
    • リポジトリ: ファイルの変更履歴を記録する場所。
      • ローカルリポジトリ: 自分のPC上にあるリポジトリ。
      • リモートリポジトリ: サーバー上にあるリポジトリ(GitHubなど)。
    • コミット: ファイルの変更をリポジトリに記録すること。
    • ブランチ: 作業内容ごとに分岐を作成し、並行して作業を進めるための機能。
    • マージ: 複数のブランチを統合すること。
  • バージョン管理システムのメリット:
    • 変更履歴の管理: いつ、誰が、どこを変更したのかを記録できる。
    • 過去のバージョンへの復元: 間違ってファイルを変更してしまっても、過去のバージョンに戻すことができる。
    • 変更内容の比較: 過去のバージョンとの差分を比較できる。
    • 共同開発: 複数人で、同じファイルを編集できる。
    • バックアップ: ファイルのバックアップとしても利用できる。

「バージョン管理システムって、難しそう…」

そう思うかもしれませんが、 基本的な使い方を覚えれば、 誰でも簡単に利用できます。 そして、 バージョン管理システムを使うことで、 開発効率が大幅に向上し、 バグの発生を抑制することができます。

: GitHubでできること – ソースコード管理、共同開発、情報共有

GitHubは、Gitを利用した、Webベースのバージョン管理サービスです。

  • GitHubでできること:
    • ソースコードの管理: 自分のソースコードを、GitHubのリモートリポジトリに保存できる。
    • 共同開発: 複数人で、同じソースコードを編集できる。
    • 情報共有: 他のエンジニアのソースコードを閲覧したり、自分のソースコードを公開したりできる。
    • タスク管理: IssueやProjectsを使って、タスク管理や進捗管理ができる。
    • ドキュメント作成: Wikiを使って、ドキュメントを作成できる。
    • Webサイト公開: Pagesを使って、Webサイトを公開できる。
    • CI/CD: Actionsを使って、CI/CD(継続的インテグレーション/継続的デリバリー)を自動化できる。
    • 情報収集: 他のエンジニアの活動を参考にしたり、最新技術の情報を収集したりできる。
    • ポートフォリオ作成: 自身のスキルや実績をアピールできる。

「GitHubって、ソースコードを管理するだけのサービスじゃないの?」

GitHubは、 ソースコードを管理するだけでなく、 共同開発、 情報共有、 タスク管理、 ドキュメント作成、 Webサイト公開、 CI/CDなど、 様々な機能を持っています。 エンジニアにとって、 非常に便利なツールです。

: GitHubとGitの違い – 混乱しやすいポイントを整理

GitHubとGitは、よく混同されますが、全く異なるものです。

  • Git:
    • バージョン管理システムそのもの。
    • コマンドラインで操作する。
    • ローカルリポジトリで作業する。
  • GitHub:
    • Gitを利用した、Webベースのバージョン管理サービス。
    • Webブラウザで操作する。
    • リモートリポジトリで作業する。
    • Gitの機能を拡張した、様々な機能を提供している。

「GitとGitHubの関係って、どんな感じ?」

Gitは、 「道具」 GitHubは、 「道具を使うための場所」 と考えると分かりやすいでしょう。 Gitという道具を使って、 GitHubという場所で、 ソースコードを管理したり、 他のエンジニアと共同開発したりする、 というイメージです。

: GitHubの料金プラン – 無料プランと有料プランの違い

GitHubには、無料プランと有料プランがあります。

  • 無料プラン:
    • リポジトリ数: 無制限(公開/非公開)
    • 共同開発者数: 無制限
    • ストレージ容量: 制限あり
    • 機能: 基本的な機能は利用可能
  • 有料プラン:
    • リポジトリ数: 無制限(公開/非公開)
    • 共同開発者数: 無制限
    • ストレージ容量: プランによって異なる
    • 機能: 無料プランよりも多くの機能が利用可能
      • 例: 高度なセキュリティ機能、サポート、GitHub Actionsの利用時間増加など

「無料プランと有料プラン、どっちを選べばいいの?」

個人で利用する場合は、 無料プランで十分です。 チームで利用する場合や、 より多くの機能を利用したい場合は、 有料プランを検討しましょう。

: GitHubの競合サービス – GitLab、Bitbucketとの比較

GitHub以外にも、Gitを利用したバージョン管理サービスはいくつかあります。

  • GitLab:
    • 特徴:
      • オープンソースのバージョン管理サービス。
      • セルフホスティング(自分でサーバーを立てて運用する)が可能。
      • CI/CD機能が充実している。
    • GitHubとの比較:
      • GitHubよりも、CI/CD機能が充実している。
      • セルフホスティングが可能なため、より自由度が高い。
  • Bitbucket:
    • 特徴:
      • Atlassianが提供するバージョン管理サービス。
      • JiraやConfluenceなどのAtlassian製品との連携が強い。
      • 小規模チーム向けの無料プランがある。
    • GitHubとの比較:
      • Atlassian製品との連携が強い。
      • 小規模チーム向けの無料プランがある。

「GitHubと他のサービス、どれを選べばいいの?」

それぞれのサービスには、 特徴があります。 自分の目的や、 チームの状況に合わせて、 最適なサービスを選びましょう。 まずは、 最も利用者の多い GitHubから 使ってみるのがおすすめです。

: GitHubの始め方 – アカウント登録、初期設定、基本操作

GitHubの基礎知識を理解したところで、実際にGitHubを使ってみましょう。

この章では、GitHubの始め方として、アカウント登録、初期設定、基本操作について解説していきます。

: GitHubアカウントの作成 – 必要な情報、登録手順

まずは、GitHubのアカウントを作成しましょう。

  • 必要な情報:
    • ユーザー名: GitHub上で表示される名前。
    • メールアドレス: GitHubからの通知を受け取るメールアドレス。
    • パスワード: GitHubにログインするためのパスワード。
  • 登録手順:
    1. GitHubのWebサイト(https://github.com/)にアクセスする。
    2. 「Sign up」ボタンをクリックする。
    3. 必要な情報を入力し、「Create account」ボタンをクリックする。
    4. メールアドレス認証を行う。
    5. プランを選択する(無料プランでOK)。

「GitHubのアカウント作成って、難しそう…」

GitHubのアカウント作成は、 非常に簡単です。 必要な情報を入力し、 画面の指示に従って 操作するだけで、 すぐにアカウントを 作成することができます。

: GitHubの初期設定 – プロフィール、SSHキー、通知設定

GitHubのアカウントを作成したら、初期設定を行いましょう。

  • プロフィール設定:
    • アイコン: 自分のアイコンを設定する。
    • 名前: GitHub上で表示される名前を設定する。
    • 自己紹介: 自己紹介文を入力する。
    • Webサイト: 自分のWebサイトやブログのURLを設定する。
    • 場所: 自分の所在地を設定する。
    • 所属: 自分の所属組織を設定する。
  • SSHキー設定:
    • SSHキーとは: GitHubに安全に接続するための鍵。
    • 設定方法:
      1. SSHキーを生成する。
      2. GitHubにSSHキーを登録する。
    • メリット:
      • パスワードを入力せずに、GitHubに接続できる。
      • セキュリティが向上する。
  • 通知設定:
    • 設定方法:
      1. GitHubの「Settings」画面を開く。
      2. 「Notifications」タブを選択する。
      3. 通知を受け取るイベントや、通知方法を設定する。
    • ポイント:
      • 必要な通知だけを受け取るように設定する。
      • メール通知だけでなく、Web通知やモバイル通知も活用する。

「初期設定って、面倒くさい…」

そう思うかもしれませんが、 初期設定を行うことで、 GitHubをより快適に、 安全に利用することができます。 最初に しっかりと設定しておきましょう。

: リポジトリの作成 – 公開/非公開、README、.gitignore

GitHubでソースコードを管理するためには、リポジトリを作成する必要があります。

  • リポジトリとは:
    • ファイルやディレクトリの集合体。
    • Gitでバージョン管理される。
  • リポジトリの作成方法:
    1. GitHubにログインする。
    2. 「New repository」ボタンをクリックする。
    3. リポジトリ名、説明、公開/非公開などを設定する。
    4. 「Create repository」ボタンをクリックする。
  • 公開/非公開:
    • 公開リポジトリ: 誰でもリポジトリの内容を閲覧できる。
    • 非公開リポジトリ: 自分と、許可されたユーザーだけがリポジトリの内容を閲覧できる。
  • README:
    • 役割: リポジトリの説明を記述するファイル。
    • 内容:
      • リポジトリの概要
      • 使い方
      • インストール方法
      • ライセンス
      • 貢献方法
    • ポイント:
      • 分かりやすく、丁寧に記述する。
      • Markdown記法で記述する。
  • .gitignore:
    • 役割: Gitで管理しないファイルを指定するファイル。
    • 例:
      • コンパイルされたファイル(.class、.oなど)
      • ログファイル
      • 一時ファイル
      • 秘密情報(パスワード、APIキーなど)
    • ポイント:
      • 不要なファイルをGitで管理しないようにする。
      • 秘密情報を誤って公開しないようにする。

「リポジトリって、どんな名前をつければいいの?」

リポジトリ名は、 プロジェクトの内容を 表す名前にしましょう。 例えば、 「my-website」 「todo-app」 などのように、 分かりやすい名前を つけるのがおすすめです。

: 基本コマンド – clone、add、commit、push、pull

GitHubを使う上で、基本的なGitコマンドを理解しておく必要があります。

  • clone:
    • 役割: リモートリポジトリをローカルに複製する。
    • コマンド: git clone <リモートリポジトリのURL>
  • add:
    • 役割: 変更したファイルをインデックスに追加する。
    • コマンド: git add <ファイル名> または git add .
  • commit:
    • 役割: インデックスに追加されたファイルをローカルリポジトリに記録する。
    • コマンド: git commit -m "<コミットメッセージ>"
  • push:
    • 役割: ローカルリポジトリの変更をリモートリポジトリに反映する。
    • コマンド: git push origin <ブランチ名>
  • pull:
    • 役割: リモートリポジトリの変更をローカルリポジトリに反映する。
    • コマンド: git pull origin <ブランチ名>

「Gitコマンドって、覚えるのが大変…」

そう思うかもしれませんが、 まずは、 上記の基本的なコマンドを 覚えておけば、 GitHubを使うことができます。 そして、 使いながら、 徐々に他のコマンドも 覚えていくと良いでしょう。

: ブランチの活用 – 開発、リリース、修正の使い分け

ブランチは、Gitの非常に重要な機能です。ブランチを活用することで、並行して複数の作業を進めたり、安全にコードを変更したりすることができます。

  • ブランチとは:
    • 作業内容ごとに分岐を作成し、並行して作業を進めるための機能。
    • メインのブランチ(masterまたはmain)から分岐を作成し、作業が終わったらメインのブランチにマージする。
  • ブランチの種類:
    • master/mainブランチ: 製品としてリリースするコードを管理するブランチ。
    • developブランチ: 開発中のコードを管理するブランチ。
    • featureブランチ: 新機能の開発や、バグ修正など、特定の作業を行うためのブランチ。
    • releaseブランチ: リリースの準備を行うためのブランチ。
    • hotfixブランチ: リリース済みの製品に緊急の修正を行うためのブランチ。
  • ブランチの使い分け:
    • 新機能の開発: featureブランチを作成し、作業を行う。
    • バグ修正: featureブランチを作成し、作業を行う。
    • リリース準備: releaseブランチを作成し、バージョン番号の更新や、最終的なテストなどを行う。
    • 緊急の修正: hotfixブランチを作成し、作業を行う。
  • ブランチの作成、切り替え、マージ
    • 作成: git branch <ブランチ名>
    • 切り替え: git checkout <ブランチ名>
    • 作成と切り替えを同時に行う: git checkout -b <ブランチ名>
    • マージ: git merge <取り込みたいブランチ名>

「ブランチって、使いこなせるか不安…」

そう思うかもしれませんが、 ブランチは、 Gitの非常に便利な機能です。 まずは、 簡単な作業から ブランチを使ってみましょう。 そして、 使いながら、 徐々にブランチの活用方法を 覚えていくと良いでしょう。

: GUIクライアントの利用 – SourceTree、GitHub Desktop

Gitコマンドを覚えるのが大変な場合は、GUIクライアントを利用するのもおすすめです。

  • GUIクライアントとは:
    • Gitの操作を、グラフィカルなインターフェースで行うことができるツール。
    • コマンドを覚えなくても、Gitの操作ができる。
  • 主なGUIクライアント:
    • SourceTree: Atlassianが提供する無料のGUIクライアント。
      • 特徴:
        • 使いやすいインターフェース。
        • 豊富な機能。
        • Windows、macOSに対応。
    • GitHub Desktop: GitHubが提供する無料のGUIクライアント。
      • 特徴:
        • GitHubとの連携が容易。
        • シンプルなインターフェース。
        • Windows、macOSに対応。
    • GitKraken:
      • 特徴:
        • 直感的で美しいインターフェース
        • 複数プロファイル対応
        • Windows, macOS, Linuxに対応

「GUIクライアントって、どれを選べばいいの?」

まずは、 SourceTreeか GitHub Desktopを 試してみるのがおすすめです。 そして、 自分に合った GUIクライアントを 選びましょう。

: GitHub実践活用 – 共同開発、OSS貢献、情報収集

GitHubの基本的な使い方が分かったら、次は、GitHubを実践的に活用してみましょう。

この章では、GitHubを使った共同開発、OSS貢献、情報収集の方法について解説していきます。

: フォークとプルリクエスト – 変更の提案とマージ

GitHubを使った共同開発では、フォークとプルリクエストという機能がよく利用されます。

  • フォークとは:
    • 他の人のリポジトリを、自分のアカウントにコピーすること。
    • フォークしたリポジトリは、自由に編集できる。
  • プルリクエストとは:
    • フォークしたリポジトリの変更を、元のリポジトリに提案すること。
    • 元のリポジトリの管理者は、プルリクエストの内容をレビューし、問題がなければマージ(取り込み)する。
  • フォークとプルリクエストの流れ:
    1. 他の人のリポジトリをフォークする。
    2. フォークしたリポジトリを、自分のPCにクローンする。
    3. ローカルでコードを変更する。
    4. 変更内容をコミットし、フォークしたリポジトリにプッシュする。
    5. GitHub上で、プルリクエストを作成する。
    6. 元のリポジトリの管理者が、プルリクエストをレビューする。
    7. 問題がなければ、プルリクエストがマージされる。

「フォークとプルリクエストって、難しそう…」

そう思うかもしれませんが、 フォークとプルリクエストは、 GitHubを使った 共同開発の基本的な流れです。 まずは、 簡単な変更から 試してみましょう。 そして、 使いながら、 徐々に フォークとプルリクエストの 使い方を覚えていくと良いでしょう。

: IssueとProjects – タスク管理、進捗管理

GitHubには、IssueとProjectsという、タスク管理や進捗管理に便利な機能があります。

  • Issueとは:
    • バグ報告、機能要望、質問など、リポジトリに関する様々な情報を記録するための機能。
    • Issueには、タイトル、説明、担当者、ラベル、マイルストーンなどを設定できる。
  • Projectsとは:
    • 複数のIssueをまとめて管理し、プロジェクトの進捗状況を可視化するための機能。
    • カンバンボード形式や、テーブル形式などで、Issueを管理できる。
  • IssueとProjectsの活用例:
    • バグ管理: バグを発見したら、Issueを作成し、担当者を割り当て、修正状況を記録する。
    • 機能要望: 新機能の要望をIssueとして記録し、優先順位をつけて対応する。
    • タスク管理: プロジェクトのタスクをIssueとして登録し、担当者、期限、進捗状況などを管理する。
    • 進捗管理: Projectsを使って、プロジェクト全体の進捗状況を可視化する。

「IssueとProjectsって、どうやって使い分ければいいの?」

Issueは、 個々のタスクや問題を 記録するためのもので、 Projectsは、 複数のIssueをまとめて プロジェクト全体を 管理するためのものです。 IssueとProjectsを 連携させることで、 より効率的に プロジェクトを 進めることができます。

: WikiとPages – ドキュメント作成、Webサイト公開

GitHubには、WikiとPagesという、ドキュメント作成やWebサイト公開に便利な機能があります。

  • Wikiとは:
    • リポジトリに関するドキュメントを作成するための機能。
    • Markdown記法で記述できる。
    • 複数人で編集できる。
  • Wikiの活用例:
    • プロジェクトの概要: プロジェクトの目的、目標、メンバーなどを記載する。
    • 使い方: リポジトリの使い方を説明する。
    • APIドキュメント: APIの仕様を説明する。
    • FAQ: よくある質問とその回答をまとめる。
  • Pagesとは:
    • リポジトリの内容を基に、静的なWebサイトを公開するための機能。
    • HTML、CSS、JavaScriptを使って、自由にWebサイトをデザインできる。
    • 独自ドメインを設定することもできる。
  • Pagesの活用例:
    • プロジェクトのWebサイト: プロジェクトの紹介ページや、ドキュメントを公開する。
    • ポートフォリオサイト: 自分のポートフォリオサイトを公開する。
    • ブログ: ブログを公開する。

「WikiとPagesって、どうやって使い分ければいいの?」

Wikiは、 リポジトリに関する ドキュメントを 作成するためのもので、 Pagesは、 リポジトリの内容を基に、 Webサイトを 公開するためのものです。 WikiとPagesを 使い分けることで、 より効果的に 情報を発信することができます。

: Actions – CI/CD(継続的インテグレーション/継続的デリバリー)

GitHub Actionsは、GitHub上でCI/CD(継続的インテグレーション/継続的デリバリー)を自動化するための機能です。

  • CI/CDとは:
    • CI (Continuous Integration): コードの変更を頻繁に統合し、自動的にテストを実行する。
    • CD (Continuous Delivery/Continuous Deployment): ソフトウェアを迅速かつ頻繁にリリースする。
  • GitHub Actionsでできること:
    • ビルド: ソースコードをコンパイルし、実行可能なファイルを作成する。
    • テスト: コードの変更によって、バグが発生していないかを確認する。
    • デプロイ: ソフトウェアをサーバーに配置する。
    • 通知: ビルド、テスト、デプロイの結果を通知する。
    • その他: 様々なタスクを自動化できる。
  • GitHub Actionsのメリット:
    • 自動化: CI/CDのプロセスを自動化できるため、開発効率が向上する。
    • 高速化: ビルド、テスト、デプロイを高速化できる。
    • 品質向上: バグの早期発見、早期修正に繋がり、ソフトウェアの品質が向上する。
    • GitHubとの連携: GitHub上でCI/CDを完結できる。
  • GitHub Actionsの設定:
    • ワークフロー: 実行するタスクを定義する。
    • イベント: ワークフローを実行するトリガー(プッシュ、プルリクエストなど)を設定する。
    • ジョブ: ワークフロー内で実行される一連のステップを定義する。
    • ステップ: 実行する個々のタスク(シェルスクリプト、アクションなど)を定義する。
    • アクション: 再利用可能なタスクの単位。

「GitHub Actionsって、難しそう…」

そう思うかもしれませんが、 GitHub Actionsは、 比較的簡単に CI/CDを 導入することができます。 まずは、 簡単なワークフローから 試してみましょう。 そして、 使いながら、 徐々に GitHub Actionsの 使い方を覚えていくと良いでしょう。

: セキュリティ対策 – 2段階認証、脆弱性対策

GitHubを安全に利用するためには、セキュリティ対策が重要です。

  • 2段階認証:
    • 設定方法:
      1. GitHubの「Settings」画面を開く。
      2. 「Security」タブを選択する。
      3. 「Two-factor authentication」を有効にする。
    • メリット:
      • アカウントの不正利用を防ぐことができる。
      • セキュリティが向上する。
  • 脆弱性対策:
    • Dependabot:
      • 機能: リポジトリで利用しているライブラリの脆弱性を検出し、自動的に修正するためのプルリクエストを作成する。
      • 設定方法: GitHubの「Settings」画面で、「Security & analysis」タブを選択し、「Dependabot alerts」を有効にする。
    • Code scanning:
      • 機能 リポジトリ内のコードを静的解析し、セキュリティ上の脆弱性を検出する。
      • 設定方法: GitHubの「Settings」画面で、「Security & analysis」タブを選択し、「Code scanning alerts」を有効にする。
  • その他:
    • パスワード: 強力なパスワードを設定する。
    • SSHキー: SSHキーを利用する。
    • 秘密情報: パスワードやAPIキーなどの秘密情報をリポジトリにコミットしない。
    • アクセス権: 不要なユーザーにアクセス権を与えない。

「セキュリティ対策って、面倒くさい…」

そう思うかもしれませんが、 セキュリティ対策は、 GitHubを安全に利用するために、 必要不可欠です。 上記の対策を参考に、 しっかりと セキュリティ対策を 行いましょう。

: GitHubで情報収集 – スター、ウォッチ、トレンド

GitHubは、情報収集の場としても活用できます。

  • スター:
    • 役割: 気になるリポジトリにスターを付けることで、ブックマークのように利用できる。
    • 活用例: 後でじっくり読みたいリポジトリや、参考にしたいリポジトリにスターを付ける。
  • ウォッチ:
    • 役割: リポジトリの更新情報を通知で受け取ることができる。
    • 活用例: 開発に参加しているリポジトリや、気になるリポジトリの更新情報をウォッチする。
  • トレンド:
    • 役割: GitHub上で、現在注目されているリポジトリを確認できる。
    • 活用例: 最新技術や、人気のライブラリなどを知ることができる。
  • Explore:
    • 役割: GitHubがおすすめのリポジトリやトピックを紹介する機能。
    • 活用例: 自分の興味関心に合ったリポジトリや、新しい技術を発見できる。
  • 検索:
    • 高度な検索: 言語、スター数、更新日など、様々な条件でリポジトリを検索できる。

「GitHubで、どうやって情報収集すればいいの?」

まずは、 自分が興味のある分野の リポジトリを探してみましょう。 そして、 スターやウォッチを 活用して、 気になるリポジトリの 情報を 効率的に収集しましょう。

: GitHubでポートフォリオ – 自分のスキルをアピール

GitHubは、ポートフォリオとして活用することもできます。

  • ポートフォリオとしての活用:
    • 公開リポジトリ: 自分のスキルや実績をアピールするために、公開リポジトリを作成する。
    • README: リポジトリのREADMEに、プロジェクトの概要、使い方、工夫した点などを具体的に記載する。
    • GitHub Pages: GitHub Pagesを使って、ポートフォリオサイトを作成する。
    • プロフィール: プロフィールに、自分のスキルや経験、実績などを記載する。
    • Pinned repositories: 特に見てもらいたいリポジトリをプロフィールページの上部に固定表示する。

「GitHubをポートフォリオとして活用するメリットって、何?」

GitHubをポートフォリオとして活用することで、 あなたのスキルや実績を、 世界中の人に アピールすることができます。 また、 GitHubは、 エンジニアの採用担当者が よくチェックする プラットフォームなので、 就職活動や転職活動にも 有利になります。

GitHubは、 エンジニアにとって、 非常に多くの 可能性を秘めたツールです。 このガイドを参考に、 GitHubを 使いこなし、 あなたのエンジニアライフを より豊かにしてください。

コメント

タイトルとURLをコピーしました