Back

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

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

プルリクエスト(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

よくある質問

[TOGGLE question=""認証が失敗した場合はどうすればよいですか?"" answer=""ターミナルインターフェースの代わりにブラウザを通して認証するには gh auth login --web を使用してください。""]

[TOGGLE question=""プッシュが拒否された場合はどう対処しますか?"" answer=""1. 最新の変更を取得:git pull origin mainn2. ブランチをリベース:git rebase mainn3. 強制プッシュ:git push -f origin feature/your-feature-name""]

[TOGGLE question=""マージコンフリクトを解決するにはどうすればよいですか?"" answer=""1. mainをチェックアウト:git checkout mainn2. 最新の変更を取得:git pulln3. ブランチに切り替え:git checkout feature/your-feature-namen4. リベース:git rebase mainn5. コンフリクトを解決して続行:git rebase --continue""]

[TOGGLE question=""ドラフトPRを作成できますか?"" answer=""はい、--draftフラグを使用します:gh pr create --draft""]

[TOGGLE question=""PRテンプレートはどのように使用しますか?"" answer=""標準化された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