ローカルPCからGitHubリポジトリを作成する方法

Linux,Tech

普段はGitHubのWeb UIでリポジトリを作成してからローカルに clone…という流れでも問題ありませんが、ローカルで作業を始めてから、そのまま GitHub 側に新規リポジトリを作成&初回 push までを CLI だけで完結できます。ここでは GitHub CLI(gh) を使った一番手軽な方法を紹介します。

前提

  • Windows PC
  • Git と GitHub アカウントがある
  • Git のユーザー情報が設定済み(未設定なら先に)
  git config --global user.name  "Your Name"
  git config --global user.email "you@example.com"

1. GitHub CLI をインストール(winget)

PowerShellを起動し、以下のコマンドを実行します。

winget install GitHub.cli


以下が実行結果です。

PS C:\Users\odeco> winget install GitHub.cli
'msstore' ソースでは、使用する前に次の契約を表示する必要があります。
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
ソースが正常に機能するには、現在のマシンの 2 文字の地理的リージョンをバックエンド サービスに送信する必要があります (例: "US")。

すべてのソース契約条件に同意しますか?
[Y] はい  [N] いいえ: Y
見つかりました GitHub CLI [GitHub.cli] バージョン 2.76.1
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/cli/cli/releases/download/v2.76.1/gh_2.76.1_windows_amd64.msi
  ██████████████████████████████  17.4 MB / 17.4 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストーラーは管理者として実行するように要求します。プロンプトが表示されます。
インストールが完了しました

ダウンロードできたか確認しましょう。

gh --version

ghが認識されないとき

もし`gh`を実行してもエラーが出る場合、以下のどちらかを試してみてください。

  • 新しいターミナルで確認
  • C:\Program Files\GitHub CLI\gh.exe があるか確認し、そのフォルダを PATH に追加
  gh --version


わたしは最初、エラーが出ました。

PS C:\Users\odeco> gh auth login
gh : 用語 'gh' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されて
いることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ gh auth login
+ ~~
    + CategoryInfo          : ObjectNotFound: (gh:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

新しいターミナルで確認したところ、問題なく確認できました。

$ gh --version
gh version 2.76.1 (2025-07-23)
https://github.com/cli/cli/releases/tag/v2.76.1



2. GitHub へログイン(初回のみ)

以下のコマンドを実行します。

gh auth login


対話式でいくつか聞かれます。デフォルトのままで問題ないです。

$ gh auth login
? Where do you use GitHub? GitHub.com
? What is your preferred protocol for Git operations on this host? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser

! First copy your one-time code: 27C7-5124
Press Enter to open https://github.com/login/device in your browser... 


認証をブラウザでGitHubにログインする方法にしましたので、途中でブラウザが立ち上がります。





認証に成功すれば、以下のように出力されます。

$ gh auth login
? Where do you use GitHub? GitHub.com
? What is your preferred protocol for Git operations on this host? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser

! First copy your one-time code: 27C7-5124
Press Enter to open https://github.com/login/device in your browser... 
✓ Authentication complete.
- gh config set -h github.com git_protocol https
✓ Configured git protocol
✓ Logged in as saitotech3



3. ローカルでリポジトリを初期化&初回コミット

設定が完了しましたので、作業フォルダに移動してコミットします。

git init
git add .
git commit -m "Initial commit"

4. ローカルからGitHubリポジトリを作成して一発push

それではGitHubリポジトリを作成しましょう。

# 例: オーナー=saitotech3、リポジトリ名=basic、ブランチ=main
gh repo create saitotech3/basic \
  --private \
  --source=. \
  --remote=origin \
  --push


出力にGitHub上のURLが表示されれば成功です。

$ gh repo create saitotech3/basic --public --source=. --remote=origin --push
✓ Created repository saitotech3/basic on github.com
  https://github.com/saitotech3/basic
✓ Added remote https://github.com/saitotech3/basic.git
Enumerating objects: 11, done.
Counting objects: 100% (11/11), done.
Delta compression using up to 8 threads
Compressing objects: 100% (11/11), done.
Writing objects: 100% (11/11), 3.63 KiB | 3.63 MiB/s, done.
Total 11 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/saitotech3/basic.git
 * [new branch]      HEAD -> master
branch 'master' set up to track 'origin/master'.
✓ Pushed commits to https://github.com/saitotech3/basic.git


WebUI上でも確認できました。



まとめ

環境変数や認証でつまったので、まとめました。