作成された各コミットまたはタグに Git が常に署名するようにする簡単な方法はありますか?
私は次のように試しました:
エイリアス commit = commit -S
しかし、それではうまくいきませんでした。
これを実現するために別のプログラムをインストールしたくありません。簡単に実行できますか?
ちょっとした質問ですが、コミットには署名は必要なく、タグのみでよいのではないでしょうか。私は Homebrew などのプロジェクトに単一のコミットを送信するので、タグは作成しません。
ベストアンサー1
-S
注:コミットが署名されていることを確認するために常に追加したくない場合は、pu
そのオプションを処理する設定を追加する提案があります (現時点ではブランチ '' 、2013 年 12 月なので、git リリースに反映される保証はありません)。2014
年 5 月更新: Git 2.0 で (このパッチシリーズで再送信)
見るコミット 2af2ef3によるニコラ・ヴィジエ(boklm):
commit.gpgsign
すべてのコミットに署名するオプションを追加する
-S
すべてのコミットに GPG 署名したい場合は、常にオプションを追加する必要があります。
構成commit.gpgsign
オプションを使用すると、すべてのコミットに自動的に署名できます。
commit.gpgsign
すべてのコミットを GPG 署名するかどうかを指定するブール値。
リベースなどの操作を実行するときにこのオプションを使用すると、多数のコミットが署名される可能性があります。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 を使用する場合、感嘆符 (
!
) を追加して、指定されたプライマリ キーまたはセカンダリ キーの使用を強制し、どのプライマリ キーまたはセカンダリ キーを使用するかを計算しないようにすることができます。
YubiKey のようなものを使用している場合 (推奨)、感嘆符について心配する必要はありません。主キー ペアに使用できる署名キーは次の 2 つだけだからです。
- 主キー自体には、
#
使用できないことを示す が後ろに付いているはずです。- 秘密サブキー
>
の後に が付いており、これは、アプレット内で使用可能な唯一の署名キーとして YubiKey を指すスタブであることを示します。すべての秘密鍵をシステム上で利用できるようにしておく場合(悪い習慣)は、利用可能な署名鍵の自動選択を防ぐのが良いでしょう。
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
。
ノート:
- 慣例により、2015年3月のgit 2.4.0以降それは
signingKey
、 ないsigningkey
、キーは大文字と小文字を区別しませんが。これは、大文字と小文字git config
を区別するを使用する場合にのみ問題になります。それ以外の場合は、読みやすさの規則にすぎません。git config --get-regexp
- もしあなたが各プッシュの署名をチェックするgitサーバー少なくともgit 2.2+(2014年10月)が必要です(コミット b945901)、 として
git push --signed
設定値を考慮できませんでしたuser.signingKey
。 - git 2.9 (2016 年 6 月) では、コミットだけでなく
user.signingKey
注釈付きタグにも署名を強制するために以下が使用されます。コミット 61c2fe0。