MENU
やすひら
やすひらと申します。
長靴を履いたタヌキ(ITエンジニア)です。
モノ作りの楽しさを発信中。
X(旧Twitter)のフォローもお願いします。

[Linuxコマンド] ghコマンドの概要と使い方

ghコマンドはGitHubが公式に提供するCLIツールです。
ターミナルからIssueの作成や確認、プルリクエスト(PR)レビュー、リポジトリ操作などをブラウザを開かずにCLIで操作することができます。
本記事ではghコマンドの概要と使い方を紹介します。

やすひら

ghコマンドの概要と使い方を紹介します

この記事でわかること
  • ghコマンドの概要
  • ghコマンドの使い方

昨今は、AIエージェントにGitHub操作を依頼することが多いため、本記事ではghコマンドのコマンドラインを中心に記載します。

目次

コマンド概要

ghコマンドはGitHubが公式に提供するCLIツールです。
GitHubでは、ソースコードの管理やIssue管理、プルリクエストやレビューをブラウザから行うことができます。
ghコマンドでは、ターミナル上から、GitHubの操作を行うことができます。

コマンドオプション

頻繁に使用するコマンドオプションを紹介します。

コマンド操作
gh auth status認証確認
gh repo create [リポジトリ名]リポジトリ作成
gh issue createIssue作成
gh issue listIssue一覧
gh issue close [Issue番号]Issueクローズ
gh pr createPR作成
gh pr listPR一覧
gh pr merge [PR番号]PRマージ
gh repo view –webブラウザで開く

コマンドの使い方

ghコマンドの使い方を紹介します。

ghコマンドをインストール

ghコマンドをインストールします。

コマンドライン

sudo apt install gh

コマンド実行例

$ sudo apt install gh
[sudo] password for user: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  gh
0 upgraded, 1 newly installed, 0 to remove and 50 not upgraded.
Need to get 5557 kB of archives.
After this operation, 33.1 MB of additional disk space will be used.
Get:1 http://ports.ubuntu.com jammy/universe arm64 gh arm64 2.4.0+dfsg1-2 [5557 kB]
Fetched 5557 kB in 5s (1214 kB/s)
Selecting previously unselected package gh.
(Reading database ... 234237 files and directories currently installed.)
Preparing to unpack .../gh_2.4.0+dfsg1-2_arm64.deb ...
Unpacking gh (2.4.0+dfsg1-2) ...
Setting up gh (2.4.0+dfsg1-2) ...
Processing triggers for man-db (2.10.2-1) ...

ghコマンドがインストールされました。

認証

ghコマンドで認証します。

対話形式でGitHub.comへのログインを求められます。
ブラウザ経由またはトークンで認証できます。

認証コマンドを実行

ghコマンドで認証を実行します。

コマンドライン

gh auth login

コマンド実行例

$ gh auth login
? What account do you want to log into?  [Use arrows to move, type to filter]
> GitHub.com
  GitHub Enterprise Server

ghコマンドで認証を実行します。

プロトコルを選択

プロトコルを選択します。

コマンド実行例

? What is your preferred protocol for Git operations?  [Use arrows to move, type to filter]
> HTTPS
  SSH

プロトコルを選択します。

筆者はHTTPSを選択しました。

GitとGitHubの連携を選択

GitとGitHubの連携を選択します。

コマンド実行例

? Authenticate Git with your GitHub credentials? (Y/n) Y

GitとGitHubの連携を選択します。

筆者はGitとGitHubの連携したいので、Y(Yes)を選択します。

ログイン方法を選択

ログイン方法を選択します。

コマンド実行例

? How would you like to authenticate GitHub CLI?  [Use arrows to move, type to filter]
> Login with a web browser
  Paste an authentication token

ログイン方法を選択します。

筆者はブラウザでログインを選択しました。

ワンタイムパスワードをコピー

ワンタイムパスワードをコピーします。

コマンド実行例

! First copy your one-time code: XXXX-XXXX
- Press Enter to open github.com in your browser... 

ワンタイムパスワードをコピーします。
Enterを押して、ブラウザを開きます。

ブラウザでログイン

ブラウザでログインします。

ブラウザ画面

アカウントを選択して、[Continue]をクリックします。

ワンタイムパスワードを入力

ワンタイムパスワードを入力します。

ブラウザ画面

ワンタイムパスワードを入力して、[Continue]をクリックします。

アクセス権限を確認

アクセス権限を確認します。

ブラウザ画面

アクセス権限を確認します。

認証

認証します。

ブラウザ画面

[Authorize github]をクリックします。

認証完了をブラウザで確認

認証完了をブラウザで確認します。

ブラウザ画面

認証完了をブラウザで確認します。

認証完了をターミナルで確認

認証完了をターミナルで確認します。

コマンド実行例

✓ Authentication complete. Press Enter to continue...

認証完了をターミナルで確認します。
Enterを押して、次に進みます。

認証内容をターミナルで確認

認証内容をターミナルで確認します。

コマンド実行例

- gh config set -h github.com git_protocol https
✓ Configured git protocol
✓ Logged in as yasuhira-tanuki

認証内容をターミナルで確認します。

認証状態を確認

ghコマンドの認証状態を確認

コマンドライン

gh auth status

コマンド実行例 (認証なし)

$ gh auth status
You are not logged into any GitHub hosts. Run gh auth login to authenticate.

コマンド実行例 (認証あり)

$ gh auth status
github.com
  ✓ Logged in to github.com as yasuhira-tanuki (/home/user/.config/gh/hosts.yml)
  ✓ Git operations for github.com configured to use https protocol.
  ✓ Token: *******************

認証状態が表示されました。
認証ありとなっている場合は、ghコマンドの操作が可能になります。

リポジトリの操作

リポジトリの操作を紹介します。

パブリックリポジトリを作成

パブリックリポジトリを作成します。

コマンドライン

gh repo create [リポジトリ名] --public

パブリックリポジトリを作成します。

プライベートリポジトリを作成

プライベートリポジトリを作成します。

コマンドライン

gh repo create [リポジトリ名] --private

プライベートリポジトリを作成します。

リポジトリのクローン

リポジトリのクローンを作成します。

コマンドライン

gh repo clone [ユーザー名]/[リポジトリ名]

指定したリポジトリのクローンを作成します。

リポジトリをブラウザで開く

リポジトリをブラウザで開きます。

コマンドライン

gh repo view --web

リポジトリをブラウザで開きます。

Issueの操作

Issueの操作を紹介します。

Issueの作成(対話形式)

対話形式でIssueを作成します。

コマンドライン

gh issue create

対話形式でIssueを作成します。

Issueの作成(タイトル/本文指定)

タイトルと本文を指定してIssueを作成します。

コマンドライン

gh issue create --title "[タイトル]" --body "[本文]"

タイトルと本文を指定してIssueを作成します。

Issueの作成(ラベル付与)

ラベルを付与してIssueを作成します。

コマンドライン

gh issue create --title "[タイトル]" --label "[ラベル]"

ラベルを付与してIssueを作成します。

Issueの一覧表示(オープン中)

オープン中のIssue一覧を表示します。

コマンドライン

gh issue list

オープン中のIssue一覧を表示します。

Issueの一覧表示(ラベル指定)

ラベル指定でIssue一覧を表示します。

コマンドライン

gh issue list --label "[タスク]"

ラベル指定でIssue一覧を表示します。

Issueの一覧表示(クローズ済み含む)

クローズ済みも含めてIssue一覧を表示します。

コマンドライン

gh issue list --state all

クローズ済みも含めてIssue一覧を表示します。

Issueの詳細表示

Issueの詳細を表示します。

コマンドライン

gh issue view [Issue ID]

Issueの詳細を表示します。

Issueのクローズ(コメントなし)

Issueをクローズします。

コマンドライン

gh issue close [Issue ID]

コメントなしでIssueをクローズします。

Issueのクローズ(コメントあり)

コメントありでIssueをクローズします。

コマンドライン

gh issue close [Issue ID] --comment "[コメント]"

コメントありでIssueをクローズします。

Pull Request(PR)の操作

Pull Request(PR)の操作を紹介します。

Pull Request(PR)の作成(対話形式)

対話形式でPull Request(PR)を作成します。

コマンドライン

gh pr create

対話形式でPull Request(PR)を作成します。

Pull Request(PR)の作成(タイトル/本文指定)

タイトル/本文指定でPull Request(PR)を作成します。

コマンドライン

gh pr create --title "[タイトル]" --body "[本文]"

タイトル/本文指定でPull Request(PR)を作成します。

Pull Request(PR)の一覧表示

Pull Request(PR)の一覧を表示します。

コマンドライン

gh pr list

Pull Request(PR)の一覧を表示します。

Pull Request(PR)をCLIで確認

Pull Request(PR)をCLIで確認します。

コマンドライン

gh pr view [PR番号]

Pull Request(PR)をCLIで確認します。

Pull Request(PR)をブラウザで確認

Pull Request(PR)をブラウザで確認します。

コマンドライン

gh pr view [PR番号] --web

Pull Request(PR)をブラウザで確認します。

Pull Request(PR)をマージ

Pull Request(PR)をマージします。

コマンドライン

gh pr merge [PR番号]

Pull Request(PR)をマージします。

AIエージェントでの利用方法

AIエージェントにGitHub操作を依頼する際にも、ghコマンドが利用できます。
AIエージェントにGitHub操作を依頼する前に、認証が必要になるため、本記事の手順で認証すると利用できるようになります。

プロンプト例

GithubのIssueに、〇〇のタスクを追加してください。

AIエージェントにGitHub操作を依頼すると、ghコマンドを利用して、GitHubの操作をしてくれます。

まとめ

ghコマンドの概要と使い方を紹介しました。

ghコマンドは
  • GitHubの操作をCLIで実行できる
  • 認証が必要
  • リポジトリの作成ができる
  • Issueの作成/クローズができる
  • PRの作成/確認ができる
  • マージができる
  • AIエージェントから利用することでGitHub操作ができる

ghコマンドを利用することで、ブラウザとターミナルを行き来する手間が減り、開発に集中することができます。
AIエージェントにGitHub操作を依頼する際にも、ghコマンドが利用できます。
AIエージェントにGitHub操作を依頼する前に、認証が必要になるため、本記事の手順で認証すると利用できるようになります。

  • URLをコピーしました!
目次