IntelliJ IDEA 2024.3 ヘルプ

GPG キーを使用してコミットに署名する

IntelliJ IDEA は、Git の組み込み GPG コミット署名(英語)機能に依存しています。最高のエクスペリエンスを得るには、パスフレーズプロンプトを処理するためのグラフィカルインターフェースを備えた gpg2 パッケージを使用することをお勧めします。

環境を構成する

GPG サポートを設定する

  • 以下のいずれか 1 つを実行します:

    • 最新の GitForWindows(英語) バージョンをダウンロードしてインストールします(バージョン 2.19.2 以降が必要です)。事前設定された GPG はパッケージの一部です。

      すべてが正しく設定されていることを確認するには、GitBash を開き、gpgconf コマンドを実行して、出力が次のようになっていることを確認します。

      gpg:OpenGPG:/usr/bin/gpg gpg-agent:Private Keys:/usr/bin/gpg-agent scdaemon:Smartcards:/usr/lib/gnupg/scdaemon gpgsm:S/MIME:/usr/bin/gpgsm dirmngr:Network:/usr/bin/dirmngr pinentry:Passphrase Entry:/usr/bin/pinentry

      echo GETPIN | pinentry コマンドを実行して、ピンエントリに GUI プロンプトが表示されることを確認します。

    • Gpg4Win(英語) パッケージをダウンロードしてインストールし、次の手順を実行して、git config gpg.program がパッケージの gpg.exe ファイルを指していることを確認します。

      1. where.exe gpg を実行します。

      2. 出力が複数の実行可能ファイルを返す場合は、Gpg4Win から 1 つを見つけます(デフォルトでは、パスは C:\Program Files (x86)\GnuPG\bin\gpg.exe です)。

      3. git config --global gpg.program "path/to/gpg/from/Gpg4Win" を実行します。

GPG サポートを設定する

  • 以下のいずれか 1 つを実行します:

    • GPGTools(英語) をダウンロードしてインストールします。事前設定された GPG はパッケージの一部です。

      git config gpg.program がパッケージの gpg ファイルを指していることを確認してください(デフォルトでは、パスは /usr/local/MacGPG2/bin/gpg です)。

    • Homebrew(英語) をダウンロードして開き、次のコマンドを実行します: brew install gnupg pinentry-mac

      すべてが正しくセットアップされていることを確認するには、ターミナルを開き、gpgconf コマンドを実行して、出力が次のようになっていることを確認します。

      pg:OpenGPG:/usr/local/MacGPG2/bin/gpg gpg-agent:Private Keys:/usr/local/MacGPG2/bin/gpg-agent scdaemon:Smartcards:/usr/local/MacGPG2/libexec/scdaemon gpgsm:S/MIME:/usr/local/MacGPG2/bin/gpgsm dirmngr:Network:/usr/local/MacGPG2/bin/dirmngr pinentry:Passphrase Entry:/usr/local/bin/pinentry

      echo GETPIN | pinentry-mac コマンドを実行して、ピンエントリに GUI プロンプトが表示されることを確認します。

GPG サポートを設定する

  1. Linux ディストリビューションに付属のパッケージマネージャーを使用して gpg2 をインストールします。パッケージの正確なリストは、使用しているディストリビューションによって異なります。最も重要なのは、gnupg2gnupg-agent、GUI プロンプトを表示する pinentry です。

    例: Ubuntu/Debian で、sudo apt -y install gnupg2 gnupg-agent pinentry-gnome3 を実行します。

  2. すべてが正しくセットアップされていることを確認するには、ターミナルを開き、gpgconf コマンドを実行して、出力が次のようになっていることを確認します。

    gpg:OpenPGP:/usr/bin/gpg gpg-agent:Private Keys:/usr/bin/gpg-agent scdaemon:Smartcards:/usr/lib/gnupg/scdaemon gpgsm:S/MIME:/usr/bin/gpgsm dirmngr:Network:/usr/bin/dirmngr pinentry:Passphrase Entry:/usr/bin/pinentry

    echo GETPIN | pinentry コマンドを使用して、pinentry が GUI プロンプトを表示することを確認してください。

GPG キーを設定する

最も安全な方法は、スマートカード (Yubikey(英語) など) を使用してキーの秘密部分を保存することです。Yubikey のセットアップの詳細については、「YubiKey-Guide(英語)」を参照してください。

GPG キーをインポートする

すでに GPG キーをお持ちの場合は、それぞれの GPG キーリングにインポートする必要があります。

  • ターミナル / コマンドプロンプト /GitBash/ システム上にあるその他のシェルを開き、次のコマンドを実行します: gpg --import <path to your private gpg.key>

GPG キーを生成する

キーがまだない場合は、新しいペアを生成する必要があります。

  1. ターミナル / コマンドプロンプト /GitBash/ システム上にあるその他のシェルを開き、次のコマンドを実行します: gpg --full-generate-key (pgp 2.1.17 以下の場合は、gpg --gen-key コマンドを使用します)。

  2. ツールが返す質問に答えます。推奨される選択肢は次のとおりです。

    • キーの種類 : RSA

    • キーサイズ : 少なくとも 4096 ビット

    • 主要な有効期間 : 1 年 (キーを 1 年に 1 回回転させることをお勧めします)

  3. ユーザー ID 情報を入力します。コミットの作成者として表示されているものと同じユーザー名とメールアドレスを使用することをお勧めします。メールアドレスのプライバシー機能と一緒に署名を使用する場合は、GitHubnoreply メールアドレスを指定してください。

  4. 安全なパスフレーズを入力します。このようなプロンプトには GUI を使用することが重要であるため、コマンドラインではなくポップアップするダイアログに必ず入力してください。

  5. 次のコマンドを実行して、キーがインポートされていることを確認します: gpg --list-keys

コミット署名を有効にする

コミット署名を有効にする前に、まず GPG キーが設定されていることを確認してください。

  1. IntelliJ IDEA を起動します(または、IntelliJ IDEA を再起動して、環境に加えた変更がロードされることを確認します)。

  2. 設定ダイアログ(Ctrl+Alt+S)で、バージョン管理 | Git に移動し、GPG キーの構成ボタンをクリックします。

  3. 開いたダイアログで、GPG キーでコミットに署名するをクリックし、使用するキーをリストから選択します。

    /home/user/.gnupg/gpg-agent.conf にすでに gpg-agent が設定されている場合、IntelliJ IDEA は新しい pinentry を設定するオプションを含む通知を表示します。

    元の設定は gpg-agent.conf.bak にバックアップされ、新しい実装によって既存の pinentry が置き換えられます。

これで、すべてのコミットが選択したキーで署名されるようになります。GPG 署名の状態は、ログタブのコミットの詳細ペインに表示されます。

アカウントに GPG キーを追加する

使用している Git ホスティングが GPG 署名の検証をサポートしている場合は、そこにキーの公開部分をアップロードしてください。

指示に従ってください

関連ページ:

Git キー

Space のリモートリポジトリのクローンを作成してコミットするには、生成して Space に提供する認証情報が必要です。要求される認証情報の種類は、リポジトリで使用される認証方法によって異なります。リポジトリの Readme ファイルを参照して、リポジトリへのアクセスに SSH と HTTPS のどちらを使用する必要があるか、また GPG コミット署名が必要かどうかを確認してください。SSH キー:SSH キーは、SSH 経由でリモートリポジトリのクローンを作成し、対話するために必要です。SSH...

Git ブランチの管理

Git では、ブランチは、たとえば機能の作業が必要な場合や、リリースのためにコードベースの特定の状態を固定する必要がある場合などに、メインの開発ラインから分岐できるようにする強力なメカニズムです。IntelliJ IDEA では、ブランチによるすべての操作は Git ブランチポップアップで実行されます。これを呼び出すには、メインウィンドウのヘッダーで、現在チェックアウトされているブランチの名前を持つ Git ウィジェットをクリックします。Git ツールウィンドウのブランチペインで、ブランチを管理し、...

Diff ビューアーを使用してファイルとフォルダーのバージョンを比較する

IntelliJ IDEA を使用すると、ファイル / フォルダーの 2 つのリビジョン間の違い、または現在のローカルコピーとリポジトリのバージョン間の違いを調べることができます。違いは差分ビューアーに表示されます。差分ビューアーでのフィルタリング、移動、変更の適用の詳細については、「ファイル、フォルダー、テキストソースを比較する」を参照してください。変更されたファイルをその Git リポジトリバージョンと比較するコミットツールウィンドウを開きます。変更リストで必要なファイルを見つけて、次のい...