🚀

GitHub CLIが便利すぎる

2024/10/20に公開

はじめに

こんにちは。@caru_iniです。
皆さんは、GitHubの公式コマンドラインツール「GitHub CLI」をご存知ですか?多くの開発者の方がGitHubのWebインターフェースを使用していると思いますが、GitHub CLIを活用することで、GitHubの操作を効率化できます。
個人的に使っていたのですが、便利すぎて皆さんにこの便利さを伝えたい!ということで、本記事を書くことにしました。

本記事では、GitHub CLIの基本的な使い方から応用テクニックまでを紹介し、あなたの開発生産性を飛躍的に向上させる方法をお伝えします。

なぜGitHub CLI?

GitHub CLIを使用するメリットは以下の通りです。

  1. コマンドラインから直接GitHubの操作ができるため、作業時間を短縮できる
  2. 複雑な操作も簡単なコマンドで実行できるため、ミスを減らせる
  3. 複数アカウントの運用が容易になる

それでは、GitHub CLIの詳細と使い方を見ていきましょう。

GitHub CLIとは

GitHub CLIは、GitHubの操作をコマンドラインから行うためのツールです。Git統合やIssue/Pull Requestの操作など、GitHubの様々な操作をコマンドラインから行うことができます。

https://docs.github.com/ja/github-cli/github-cli/about-github-cli

インストール

各OSごとのインストール方法を紹介します。

macOS

brew install gh

Linux / BSD

手動でリポジトリをaptに追加してインストールします。

(type -p wget >/dev/null || (sudo apt update && sudo apt-get install wget -y)) \
 && sudo mkdir -p -m 755 /etc/apt/keyrings \
 && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
 && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
 && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
 && sudo apt update \
 && sudo apt install gh -y

Windows

winget install --id GitHub.cli

ログイン

インストールが完了したら、まずはGitHubアカウントでログインしましょう。

gh auth login -w -p https 

4桁-4桁のコードが表示されるので、ブラウザでそのコードを入力して認証します。

gh auth status

以下のように表示されればOKです。

✓ Logged in to github.com account <アカウント名> (/home/user/.config/gh/hosts.yml)
- Active account: true
- Git operations protocol: https
- Token: gho_************************************
- Token scopes: 'gist', 'read:org', 'repo', 'workflow'

アカウントの切り替え

複数アカウントを持っている場合は、アカウントを追加して以下のコマンドで切り替えます。

gh auth switch

以下のように表示されます

✓ Switched active account for github.com to <アカウント名>

基本的な使い方

リポジトリの作成

新しいリポジトリを作成するには、以下のコマンドを使用します。

gh repo create <リポジトリ名>

リポジトリ名を省略すると、対話式でリポジトリの作成ができます。

よく使うオプション

  • -c, --clone: 作成と同時にクローン
  • --private: プライベートリポジトリを作成
  • -p, --template: リポジトリのテンプレートを指定

リポジトリのクローン

既存のリポジトリをクローンするには、以下のコマンドを使用します。

gh repo clone <リポジトリ名 / URL> <ローカルパス>

このコマンドは基本的にGitのクローンと同じですが、リモートが設定された状態でクローンされるので便利です。ローカルパスを省略すると、リポジトリ名でディレクトリが作成されます。

GitHub上のリポジトリの場合、caru-ini/test-repoのようにリポジトリ名を指定できます。自分のリポジトリの場合はリポジトリ名のみでもOKです。

Gitコマンドの上書き

-- より先のオプションをGitコマンドに渡すことができます。

gh repo clone <リポジトリ名 / URL> <ローカルパス> -- --depth=1

Gitのセットアップ

GitHub CLIでGitをセットアップすることで、簡単にGitを使い始めることができます。通常sshキーなどで設定しますが、これだけでOKなので、非常に便利です。

gh auth setup-git

このコマンドを実行すると、グローバルの.gitconfigに以下の設定が追加されます。

[credential "https://github.com"]
        helper =
        helper = !/usr/bin/gh auth git-credential
[credential "https://gist.github.com"]
        helper =
        helper = !/usr/bin/gh auth git-credential

ユーザー名とメールアドレスを設定していない場合は、追加しておきましょう。

Issueの作成

新しいIssueを作成するには、以下のコマンドを使用します。

gh issue create

必須オプションの指定がない場合は、対話式でIssueを作成できます。

よく使うオプション

  • -t, --title: タイトル
  • -b, --body: 本文
  • -a, --assignee: 担当者
  • -l, --label: ラベル
  • -w, --web: ブラウザでIssueを開く

使用例

gh issue create -t "Bug Report" -b "This is a bug report" -a "caru-ini" -l "bug" -l "critical"

Issueの一覧

Issueの一覧を表示するには、以下のコマンドを使用します。

gh issue list

このコマンドは、Issueの一覧を色付きで表示するので、非常に見やすいです。

よく使うオプション

  • -s, --state: ステータス(open | closed | all)
  • -A, --author: 作成者
  • -a, --assignee: 担当者
  • -l, --label: ラベル

Pull Requestの作成

Pull Requestを作成するには、まず作成したいブランチに移動し、以下のコマンドを実行します。

gh pr create

必須オプションの指定がない場合は、対話式でPull Requestを作成できます。

よく使うオプション

  • -t, --title: タイトル
  • -b, --body: 本文
  • -a, --assignee: 担当者
  • -l, --label: ラベル
  • -d, --draft: 下書きを作成

使用例

gh pr create -t "Fix bug" -b "This is a bug fix" -a "caru-ini" -l "bug"

Pull Requestの一覧

Pull Requestの一覧を表示するには、以下のコマンドを使用します。

gh pr list

Pull Requestをチェックアウト

Pull Requestのブランチをチェックアウトする場合は、以下のコマンドを実行します。

gh pr checkout <Request番号>

拡張機能を使う

GitHub CLIの機能を拡張する方法も紹介します。

GitHub Copilot

GitHub Copilotは、GitHub CLIでも使用できます。以下のコマンドでインストールできます。

gh extension install github/gh-copilot

インストール後は、gh copilotコマンドが使えるようになります。

コマンドの説明

gh copilot explain <コマンド>

このコマンドは、指定したコマンドの説明をしてくれます。コマンドの指定がない場合、対話式で説明したいコマンドを入力できます。

コマンドの提案

gh copilot suggest <やりたいこと>

やりたいことを入力すると、そのコマンドを実行するためのコマンドを提案してくれます。最初にコマンドの種類を聞かれるので、適切なものを選択します。

  • generic shell: 一般的なシェルコマンド
  • gh: GitHub CLIのコマンド
  • git: Gitのコマンド

まとめ

最後まで読んでいただき、ありがとうございました!
今回は、GitHub CLIの基本的な使い方とGitHub CLIの拡張機能のGitHub Copilotを紹介しました。Git操作だけでなく、GitHubもコマンドラインから操作できるのは、刺さる人には刺さるツールといえると思います。
今回紹介した機能はGitHub CLIの一部に過ぎません。公式ドキュメントを参照して、さらに多くの便利な機能を探索してみてください!

参考

著者について

普段はReact、Next.js、TypeScriptなどのフロントエンド技術を中心に開発を行っています。

フォローしていただけると嬉しいです!
(友達が少ないのは内緒です...)

https://x.com/caru_ini

GitHubで編集を提案

Discussion