12k
All articles

ターミナルからプルリクエストを作成する方法

GitHub CLIを使ってターミナルからプルリクエストを作成し、ブランチ管理やコンフリクト解消、シェルスクリプトとテンプレートによるPR作業の自動化を行う方法を解説する。

OpenReplay Team
OpenReplay Team
ターミナルからプルリクエストを作成する方法

プルリクエスト(PR)は、GitHub上での共同開発の基本であり、変更がマージされる前にコードレビューとディスカッションを可能にします。このガイドでは、主にGitHub CLI(gh)を使用して、ターミナルからPRを効率的に作成および管理する方法を説明します。

重要なポイント

  • GitHub CLIを使用したPR管理の方法を学ぶ
  • ターミナルベースのPRワークフローをマスターする
  • PR作成のベストプラクティスに従う
  • 一般的なトラブルシューティングシナリオに対処する
  • 高度なPR機能を実装する

前提条件

始める前に、以下を確認してください:

  • Gitがインストールされ、設定されていること(Gitのダウンロード
  • GitHub CLI(gh)がインストールされていること(GitHub CLIドキュメント
  • GitHubアカウントを持っていること(サインアップ
  • リポジトリへのアクセスと必要な権限があること
  • Gitコマンドの基本的な理解があること

GitHub CLIのセットアップ

インストール

お使いのオペレーティングシステムを選択してください:

macOS

# Homebrewを使用
brew install gh

# MacPortsを使用
sudo port install gh

Linux

# Debian/Ubuntu
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo ""deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/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

# Fedora
sudo dnf install gh

# Arch Linux
sudo pacman -S github-cli

Windows

# Scoopを使用
scoop install gh

# Wingetを使用
winget install --id GitHub.cli

認証

インストール後、GitHubで認証します:

gh auth login

対話式のプロンプトに従って認証を完了します。HTTPSまたはSSHプロトコルを選択できます。

プルリクエストの作成

1. ブランチの準備

# ローカルのmainブランチを更新
git checkout main
git pull origin main

# 新しい機能ブランチを作成して切り替え
git checkout -b feature/your-feature-name

2. 変更を加えてコミット

# すべての変更をステージング
git add .

# 説明的なメッセージでコミットを作成
git commit -m ""feat: implement new feature

- 新機能を追加
- ドキュメントを更新
- 関連する問題を修正""

3. 変更をプッシュ

# ブランチをGitHubにプッシュ
git push -u origin feature/your-feature-name

4. プルリクエストの作成

GitHub CLIを使用(推奨)

基本的なPR作成

gh pr create --title ""機能:新機能の実装"" --body ""変更の説明""

高度なPR作成

gh pr create 
  --title ""機能:新機能の実装"" 
  --body ""## 変更点
- 新機能を実装
- テストを更新
- ドキュメントを追加

## 関連する課題
Closes #123"" 
  --base main 
  --head feature/your-feature-name 
  --reviewer username1,username2 
  --label ""enhancement,documentation"" 
  --milestone ""v1.0.0"" 
  --project ""プロジェクトボード""

5. PRの管理

# ブラウザでPRを表示
gh pr view --web

# PRのステータスを確認
gh pr status

# すべてのPRをリスト表示
gh pr list

# 既存のPRにレビュアーを追加
gh pr edit --add-reviewer username1,username2

# ラベルを追加
gh pr edit --add-label ""priority,bug""

ベストプラクティス

  1. ブランチの命名
    • 説明的な接頭辞を使用:feature/fix/docs/refactor/
    • 該当する場合は課題番号を含める:feature/123-user-authentication
  2. コミットメッセージ
    • 従来のコミット規則に従う(規約
    • スコープと説明を含める
    • 課題を参照:「fixes #123」
  3. PR説明
    • 利用可能な場合はテンプレートを使用
    • コンテキストと理由を含める
    • 関連する課題と依存関係をリスト
    • UI変更のスクリーンショットを追加
  4. コードレビュー
    • フィードバックに迅速に対応
    • 必要に応じてPR説明を更新
    • コンフリクトを迅速に解決

トラブルシューティング

一般的な問題と解決策

  1. 認証失敗

    gh auth login --web
    
  2. プッシュが拒否された

    git pull origin main
    git rebase main
    git push -f origin feature/your-feature-name
    
  3. マージコンフリクト

    git checkout main
    git pull
    git checkout feature/your-feature-name
    git rebase main
    # コンフリクトを解決して続行
    git rebase --continue
    

高度な機能

ドラフトPR

gh pr create --draft

PRテンプレート

リポジトリに.github/pull_request_template.mdを作成して、標準化されたPR説明を使用します。

PR作成の自動化

一般的なPRパターンのシェルエイリアスやスクリプトを作成できます:

# .bashrcまたは.zshrcに追加
alias pr-create='gh pr create --template ""template.md"" --label ""needs-review""'

最新機能を利用するために、GitHub CLIを最新の状態に保つことを忘れないでください:

# GitHub CLIを更新
gh update

よくある質問

認証が失敗した場合はどうすればよいですか?

ターミナルインターフェースの代わりにブラウザを通して認証するには `gh auth login --web` を使用してください。

プッシュが拒否された場合はどう対処しますか?

1. 最新の変更を取得:`git pull origin main` 2. ブランチをリベース:`git rebase main` 3. 強制プッシュ:`git push -f origin feature/your-feature-name`

マージコンフリクトを解決するにはどうすればよいですか?

1. mainをチェックアウト:`git checkout main` 2. 最新の変更を取得:`git pull` 3. ブランチに切り替え:`git checkout feature/your-feature-name` 4. リベース:`git rebase main` 5. コンフリクトを解決して続行:`git rebase --continue`

ドラフトPRを作成できますか?

はい、`--draft`フラグを使用します:`gh pr create --draft`

PRテンプレートはどのように使用しますか?

標準化されたPR説明のために、リポジトリに`.github/pull_request_template.md`ファイルを作成します。

結論

ターミナルベースのアプローチでプルリクエストを作成・管理するスキルを習得することで、開発ワークフローを大幅に向上させることができます。GitHub CLI(gh)は、作成からマージまでのPRプロセスを効率化する強力なツールセットを提供します。このガイドで概説したベストプラクティスに従い、GitHub CLIの機能を活用することで、以下のことが可能になります:

  • ターミナルとブラウザ間のコンテキスト切り替えを避けて時間を節約
  • テンプレートと規則を通じて一貫したPRの品質を維持
  • 一般的なPRの課題に効率的に対処
  • 繰り返しのPR関連タスクを自動化

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers

We use cookies to improve your experience. By using our site, you accept cookies.