GitHubとは何か
GitHub(ギットハブ)は、ソフトウェアを作るためのファイル、変更の履歴、作業メモ、相談を一つの場所で管理できるサービスです。個人開発では、作品のコードを保存するだけでなく、「何を直すか」「どこを変えたか」「いつ公開したか」を後から確かめる場所として使えます。
最初からすべての機能を覚える必要はありません。まずは、一つの作品を置くリポジトリと、作業を一件ずつ記録するIssueの二つを理解すれば十分です。
GitHubは開発の記録をまとめる場所
GitHubの公式資料では、計画、制作、レビュー、テスト、公開、運用まで、ソフトウェア開発の各段階を支える場所として説明されています。ただし、個人開発を始めた日にすべてを使う必要はありません。
最初は、次の三つをまとめる場所だと考えます。
アプリを構成するコードや画像などのファイル
ファイルをいつ、どのような理由で変更したかという履歴
次に行う作業や、見つけた問題の記録
パソコンの故障に備えたバックアップ先として役立つ場合もありますが、GitHubは単なるオンラインストレージではありません。変更の単位と理由を残し、作業を追跡できることが中心です。
GitHubとGitは同じものではない
GitHubとGitは名前が似ていますが、同じものではありません。
Git:主に自分のパソコンで、ファイルの変更履歴を記録する仕組み
GitHub:Gitで管理した作品をオンラインへ置き、作業や相談を共有するサービス
Gitは、インターネットへ接続していなくても、自分のパソコン上で変更を記録できます。GitHubは、その記録をオンライン上のリポジトリへ置き、別の端末から参照したり、他の人と確認したりできるようにします。
GitHubを使う方法も一つではありません。Webブラウザ、GitHub Desktop、Gitのコマンド、GitHub CLIなどがあります。「GitHubを使うには、最初から黒い画面で難しいコマンドを覚えなければならない」ということではありません。
一つの作品を一つのリポジトリで管理する
リポジトリは、作品に関係するファイルと変更履歴をまとめる単位です。GitHubの公式資料では、リポジトリにはコード、ファイル、それぞれの変更履歴が含まれると説明されています。
初めての個人開発では、原則として一つの作品に一つのリポジトリを用意すると、ファイルと作業を混同しにくくなります。たとえば読書記録アプリなら、画面のコード、説明文、画像、設定例を同じリポジトリで管理します。別の買い物メモアプリは、別のリポジトリへ分けます。
リポジトリには公開範囲があります。
Public:インターネット上の誰でも内容を閲覧できる
Private:許可された人だけが閲覧できる
Publicリポジトリには、パスワード、APIキー、個人情報を入れてはいけません。Privateリポジトリでも、秘密情報をコードへ直接書く運用は避けます。一度履歴へ記録された値は、現在のファイルから削除しても過去の履歴に残る場合があるためです。詳しくは個人開発の秘密情報を安全に管理するで説明しています。
Issueで「今やること」と「後でやること」を分ける
Issue(イシュー)は、作業、改善案、不具合、質問などを一件ずつ記録する機能です。GitHubの公式資料でも、アイデア、フィードバック、作業、バグを追跡するために使えると説明されています。
読書記録アプリなら、次のように一件ずつ分けます。
本の題名を追加できるようにする
空欄で追加すると画面が止まる問題を直す
後で感想欄を追加するか検討する
一つのIssueへすべてを書き込むのではなく、終わったかどうかを判断できる大きさに分けます。個人開発を始める前に決める3つのことで決めた「最初にできること」と「今回は作らないもの」を、Issueへ移すと整理しやすくなります。
利用者から届いた要望や不具合をIssueへ記録するときは、氏名、メールアドレス、問い合わせ本文をそのまま公開しません。利用者の声を改善バックログに変えるのように、個人を特定しない事実と作業へ分けて記録します。
最初は使わなくてもよい機能がある
GitHubには、Pull Request、Actions、Projects、Discussions、Releasesなど多くの機能があります。どれも役立つ機能ですが、最初の一作品で同時に覚える必要はありません。
最初は次の順で十分です。
作品ごとにリポジトリを一つ用意する
READMEへ、何を作るかと動かし方を書く
今行う作業をIssueへ一件ずつ記録する
区切りのよい変更を履歴へ残す
公開前に、秘密情報や不要なファイルが入っていないか確認する
複数の人と変更を確認する必要が出たらPull Requestを、テストや公開を自動化したくなったらGitHub Actionsを学びます。必要になった順に一機能ずつ増やします。
GitHubを使う前に確認する
新しいリポジトリを作るときは、少なくとも次を確認します。
何の作品を管理するリポジトリか説明できる
PublicとPrivateのどちらにするか決めた
パスワード、APIキー、個人情報を入れていない
READMEに、作品の目的と開き方または動かし方がある
Issueを、完了したか判断できる大きさで書いている
GitHubは、コードを置いただけで作品を自動的に完成させるサービスではありません。作品のファイル、変更理由、次の作業を追跡できる形にする場所です。個人開発のロードマップを一枚にするで現在地を決め、その一歩をリポジトリとIssueへ記録すると、作業を見失いにくくなります。