1. ホーム
  2. ギット

[解決済み】GitのコミットをGPGキーで「自動署名」する方法はありますか?

2022-03-31 21:06:08

質問

Git が、作成された各コミットやタグに常に署名するようにする簡単な方法はありますか?

みたいなもので試してみました。

alias commit = commit -S

しかし、これではうまくいきませんでした。

これを実現するために、別のプログラムをインストールするのは嫌です。簡単にできるものなのでしょうか?

余談ですが、コミットには署名は不要で、タグだけでいいのかもしれません。Homebrewなどのプロジェクトでは、シングルコミットを提出するので、私は作成しないのですが。

どのように解決するのですか?

注意:もしあなたが -S を常に使用し、コミットが署名済みであることを確認するという提案もあります (ブランチ ' pu このオプションは、2013年12月現在、git リリースに間に合うかどうか保証はありません。

2014年5月更新:Git 2.0に収録されている(された後 このパッチシリーズで再送信 )

参照 コミット 2af2ef3 によって ニコラ・ヴィジェ (boklm) :

を追加します。 commit.gpgsign オプションを使用して、すべてのコミットに署名します。

すべてのコミットに対して GPG 署名を行いたい場合は、GPG 署名を行うために -S オプションを常に使用します。

は、その commit.gpgsign の設定オプションで、すべてのコミットに自動的に署名することができます。

commit.gpgsign

すべてのコミットに GPG 署名を行うかどうかを指定するブール値です。

rebaseなどの操作を行う際にこのオプションを使用すると、大量のコミットが署名されてしまう可能性があります。GPGパスフレーズを何度も入力するのを避けるために、エージェントを使用すると便利でしょう。


その設定は通常、レポごとに設定されます(プライベートな実験用ローカルレポに署名する必要はありません)。

cd /path/to/repo/needing/gpg/signature
git config commit.gpgsign true

と組み合わせることになります。 user.signingKey をグローバルな設定として使用します(コミットに署名するすべてのリポジトリで使用する一意のキー)。

git config --global user.signingkey F2C7AB29!
                                           ^^^

として ウボンビ で提案しています。 コメント (そして、"で説明する。 GPG ハードウェアキーと Git の署名 "をベースに、" ユーザーIDの指定方法 ")。

gpgを使用する場合、感嘆符( ! は、指定された主キーまたは副キーを強制的に使用するために付加されることがあり、どの主キーまたは副キーを使用するかを計算しようとするものではありません。


user.signingKey は、git 1.5.0 (2007年1月) で導入された コミットd67778e :

<ブロッククオート

自分の名前の形式を同じにする必要はないはずです。 git リポジトリと gpg キーです。

さらに、自分のキーホルダーに複数のキーがあり、コミットメッセージで使用するアドレスと一致しないものを使いたいかもしれません。

<ブロッククオート

このパッチは、設定項目 "を追加します。 user.signingKey このスイッチは、もし存在すれば、gpg の "-u" スイッチに渡され、タグの署名キーを上書きすることを可能にします。

これを実現するのが コミット aba9119 (git 1.5.3.2) では、ユーザが誤って user.signingKey での .git/config または、キーホルダーに秘密鍵を持っていないだけです。

注意事項