第8章 GitHub にリポジトリを公開する

この章で学ぶこと

  • GitHub アカウントの確認

  • gh repo create でリモートリポジトリを作る

  • git push でローカル → GitHub に送る

  • ブラウザで確認

動機・背景

ここまでで ~/my-scripts のローカルリポジトリには、README、.gitignore、いくつかのコミットが蓄積されました。しかし、このままでは「自分のこの PC でしか使えない」「PC が壊れたらすべて消える」「同僚やコミュニティに見せられない」という状態です。せっかく履歴を残しても、ローカルだけに置いておくのはバックアップとしても共有手段としても不十分です。

GitHub にリポジトリをアップロード (プッシュ) すれば、クラウド上に常に最新の履歴が保管され、別の PC からクローンして作業を続けたり、URL を共有してレビューを受けたりできるようになります。バックアップと共有という 2 つの課題が、たった数コマンドで一度に解決します。

アカウントを準備する

注釈

https://github.com/ でアカウント作成 (まだの場合)。第3章で gh auth login を済ませている前提。gh auth status で確認できます。

gh repo create でリモート作成

cd ~/my-scripts
gh repo create --source=. --private --remote=origin

各フラグの意味は次のとおりです。

  • --source=.: カレントディレクトリのローカルリポジトリを使う

  • --private: プライベートリポジトリで作成

  • --remote=origin: リモート名を origin で登録

期待出力例:

✓ Created repository <your-id>/my-scripts on GitHub
✓ Added remote https://github.com/<your-id>/my-scripts.git

リモートが登録されたか確認

git remote -v

期待出力:

origin  https://github.com/<your-id>/my-scripts.git (fetch)
origin  https://github.com/<your-id>/my-scripts.git (push)

初回プッシュ

git push -u origin main

期待出力 (一部):

Enumerating objects: ...
Writing objects: 100% (...)
To https://github.com/<your-id>/my-scripts.git
 * [new branch]      main -> main
branch 'main' set up to track 'origin/main'.

注釈

-u フラグは「ローカルの main をリモート origin/main と紐付ける」設定。次回以降は git push だけで OK になります。

ブラウザで確認

gh browse

このコマンドを実行すると、既定のブラウザで GitHub 上のリポジトリページが自動的に開きます。プッシュした内容が実際に反映されているかを目視で確認しましょう。

確認すべきこと:

  • README.md の内容が表示されている

  • .gitignore がある

  • .env が表示されていない (除外できている)

  • コミット履歴が見える

警告

ブラウザで .env が見えてしまったら、即座に対処が必要です。付録 B 「秘匿情報を誤コミットしてしまった場合」を参照。

private vs public の選び方

種類

公開範囲

おすすめのケース

--private

自分 + 招待した人

業務スクリプト、個人用、機密性のあるもの

--public

全世界

OSS として公開、ポートフォリオ、教材

Tip

最初は --private で作成し、公開する自信が付いたタイミングで Settings から public に変えるのが安全です (gh repo edit --visibility public でも変更可)。

ハンズオン課題

  1. リモートが正しく origin という名前で登録されたか git remote -v で確認

  2. ブラウザでリポジトリページを開き、.env見えないことを確認

  3. README.md に 1 行追加してコミットし、git push (今度は -u 不要) で反映、ブラウザで確認

まとめ

  • gh repo create --source=. --private --remote=origin で 1 コマンド作成

  • 初回 git push -u origin main、以降は git push だけ

  • .env がリモートにも無いことを必ず確認