3秒でわかる
Git リポジトリをインターネット上に置いて共有できるサービス。差分レビューや課題管理まで含めて、複数人の開発を回す土台になります。
30秒図解
もう少し詳しく
どういうものか
GitHub は、手元で使う Git のリポジトリをそのままクラウドに置き、他の人と共有できるサービスです。単なる置き場ではなく、変更をレビューするプルリクエスト、作業と不具合を管理する Issue、テストや配布を自動で走らせる Actions が付いています。
公開リポジトリは誰でも閲覧でき、世の中のライブラリの中身を読むときの入口にもなります。学習者にとっては、自分の書いたコードを人に見せられる形で置いておける場所でもあります。
なぜ必要か
Git だけでも履歴は残せますが、その履歴は自分のパソコンの中にしかありません。複数人で書くと、誰の変更を正とするかを決める共通の場所が要ります。GitHub はその共通の場所を提供し、あわせて「取り込む前に読む」という手順をプルリクエストとして仕組み化します。壊れたコードが本流へ入る前に止められるのは、この手順があるからです。
具体例
手元のフォルダを GitHub に上げる最短の流れは次のとおりです。
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:username/my-app.git
git push -u origin main以降、作業はブランチを切って進めます。
git switch -c feature/login
git commit -am "ログイン画面を追加"
git push -u origin feature/loginpush したあと GitHub 上でプルリクエストを作ると、差分が行単位で表示され、コメントを付けながらレビューできます。
つまずきやすいところ
Git と GitHub を同じものだと思ったまま進むと、説明の意味が取りづらくなります。Git はパソコンの中で履歴を作るソフト、GitHub はそれを預かって共同作業を助けるサービスで、別物です。
認証も詰まりやすい箇所です。現在の GitHub はパスワードでの push を受け付けないため、SSH 鍵を登録するか、パーソナルアクセストークンを作る必要があります。
.env や鍵ファイルをうっかり push してしまう事故も後を絶ちません。一度 push した内容は履歴に残るので、削除コミットを積んでも消えません。.gitignore を最初のコミットで用意しておくのが確実です。流出させた鍵は、履歴から消す作業より先に失効させます。
似た用語との違い
| 名前 | 正体 |
|---|---|
| Git | 手元で履歴を作るバージョン管理ソフト |
| GitHub | Git リポジトリを預かり、共同作業を助けるサービス |
| GitLab, Bitbucket | GitHub と同じ役割を担う別のサービス |
Git は1つのソフトですが、それを預かるサービスは複数あり、乗り換えても手元のコマンドは変わりません。
覚え方
Git は日記帳、GitHub はその日記帳を持ち寄って読み合う場所、と考えると役割の差がはっきりします。
