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/pinentryecho GETPIN | pinentry
コマンドを実行して、ピンエントリに GUI プロンプトが表示されることを確認します。Gpg4Win(英語) パッケージをダウンロードしてインストールし、次の手順を実行して、
git config gpg.program
がパッケージのgpg.exe
ファイルを指していることを確認します。where.exe gpg
を実行します。出力が複数の実行可能ファイルを返す場合は、Gpg4Win から 1 つを見つけます(デフォルトでは、パスは C:\Program Files (x86)\GnuPG\bin\gpg.exe です)。
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/pinentryecho GETPIN | pinentry-mac
コマンドを実行して、ピンエントリに GUI プロンプトが表示されることを確認します。
GPG サポートを設定する
Linux ディストリビューションに付属のパッケージマネージャーを使用して
gpg2
をインストールします。パッケージの正確なリストは、使用しているディストリビューションによって異なります。最も重要なのは、gnupg2、gnupg-agent、GUI プロンプトを表示する pinentry です。例: Ubuntu/Debian で、
sudo apt -y install gnupg2 gnupg-agent pinentry-gnome3
を実行します。すべてが正しくセットアップされていることを確認するには、ターミナルを開き、
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/pinentryecho GETPIN | pinentry
コマンドを使用して、pinentry が GUI プロンプトを表示することを確認してください。
GPG キーを設定する
最も安全な方法は、スマートカード (Yubikey(英語) など) を使用してキーの秘密部分を保存することです。Yubikey のセットアップの詳細については、「YubiKey-Guide(英語)」を参照してください。
GPG キーをインポートする
すでに GPG キーをお持ちの場合は、それぞれの GPG キーリングにインポートする必要があります。
ターミナル / コマンドプロンプト /GitBash/ システム上にあるその他のシェルを開き、次のコマンドを実行します:
gpg --import <path to your private gpg.key>
GPG キーを生成する
キーがまだない場合は、新しいペアを生成する必要があります。
ターミナル / コマンドプロンプト /GitBash/ システム上にあるその他のシェルを開き、次のコマンドを実行します:
gpg --full-generate-key
(pgp 2.1.17 以下の場合は、gpg --gen-key
コマンドを使用します)。ツールが返す質問に答えます。推奨される選択肢は次のとおりです。
キーの種類 : RSA
キーサイズ : 少なくとも 4096 ビット
主要な有効期間 : 1 年 (キーを 1 年に 1 回回転させることをお勧めします)
ユーザー ID 情報を入力します。コミットの作成者として表示されているものと同じユーザー名とメールアドレスを使用することをお勧めします。メールアドレスのプライバシー機能と一緒に署名を使用する場合は、GitHubnoreply メールアドレスを指定してください。
安全なパスフレーズを入力します。このようなプロンプトには GUI を使用することが重要であるため、コマンドラインではなくポップアップするダイアログに必ず入力してください。
次のコマンドを実行して、キーがインポートされていることを確認します:
gpg --list-keys
コミット署名を有効にする
コミット署名を有効にする前に、まず GPG キーが設定されていることを確認してください。
IntelliJ IDEA を起動します(または、IntelliJ IDEA を再起動して、環境に加えた変更がロードされることを確認します)。
設定ダイアログ(Ctrl+Alt+S)で、バージョン管理 | Git に移動し、GPG キーの構成ボタンをクリックします。
開いたダイアログで、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 リポジトリバージョンと比較するコミットツールウィンドウを開きます。変更リストで必要なファイルを見つけて、次のい...