gpg で git コミットに署名する方法はありますか? -s
タグを使用すると(の代わりに使用して)とても簡単-a
です。コミットにも同様の機能があるようです。
2 に答える
注:-S
オプションを常に追加するのは面倒です。
git 2.0 以降では、そのオプションを処理する構成を追加できます。
Nicolas Vigier (boklm)によるコミット 2af2ef3を参照してください。
commit.gpgsign
すべてのコミットに署名するオプションを追加
すべてのコミットを GPG 署名する場合は、
-S
常にオプションを追加する必要があります。
config オプションを使用すると、commit.gpgsign
すべてのコミットに自動的に署名できます。
commit.gpgsign
すべてのコミットを GPG 署名するかどうかを指定するブール値。
リベースなどの操作を行うときにこのオプションを使用すると、多数のコミットが署名される可能性があります。GPG パスフレーズを何度も入力するのを避けるために、エージェントを使用すると便利な場合があります。
これをコマンドラインでグローバルに設定するには:
git config --global commit.gpgsign true
Git 2.27 (2020 年第 2 四半期) で、" " は、ユーザーが取り消す " " オプションをgit rebase
学習しました。--no-gpg-sign
commit.gpgSign
commit 5c5bac1、commit 4369d3a、commit 9da37fe、commit ae06ba6、commit cf0ad4d、commit c241371 (03 Apr 2020) by Đoàn Trần Công Danh (``)を参照してください。
( 2020 年 4 月 22 日にコミット fc3f6fdでJunio C Hamanoによってマージされました)gitster
cherry-pick/revert
--no-gpg-sign
:すべてのケースで名誉署名者: Đoàn Trần Công Danh
{cherry-pick,revert} --edit はまだ --no-gpg-sign を受け入れていません。
git commit
それを尊重するために、このオプションを に渡します。
git rebase --rebase-merges
" " ( man )は、デフォルト以外のマージ戦略を使用してマージを再生するとき、または octopus マージを再生するときに、--gpg-sign
基になる " " にコマンド ライン オプションを正しく渡さなかったことに注意してください(デフォルト戦略を使用した 2 ヘッド マージの再生は、 git merge
Git 2.30 (2021 年第 1 四半期) で修正されました。
commit 43ad4f2、commit 19dad04、commit ae03c97 (2020 年 10 月 18 日) by Samuel Čavoj ( sammko
)を参照してください。
( 2020 年 11 月 2 日にコミット 73af6a4でJunio C Hamanoによってマージされました)gitster
sequencer
: merge サブコマンドに渡される gpg オプションを修正署名者: Samuel Čavoj
--rebase-merges
または octopus マージで指定されたカスタム戦略のいずれかを使用してリベースを実行-s
し、同時にgpgsign
( rebase-S
または configのいずれかをcommit.gpgsign
) 有効にすると、操作はマージ コミットの作成に失敗していました。キー ID が置換された" " の代わりに
-S%s
、裸のキー ID のみが基になるマージ コマンドに渡され、それを参照として解釈しようとします。Johannes Schindelin と Junio C Hamano の提案に従って、問題を修正し、テスト ケースを追加します。
と:
sequencer
--no-gpg-sign
: 明示的に渡すmerge
署名者: Samuel Čavoj
デフォルト以外の戦略を使用したマージのために起動されたマージ サブコマンドは、設定に関係なく、独自のデフォルトの動作を使用してコミットに署名する方法を決定します
opts->gpg_sign
。
たとえば、--no-gpg-sign
rebase に明示的に指定されたフラグは、commit.gpgsign
に設定されている場合は無視されtrue
ます。問題を修正し、この動作を実行するテスト ケースを追加します。
固定:
" git rebase --rebase-merges
" ( man )--gpg-sign
は、デフォルト以外のマージ戦略を使用してマージを再生するとき、または octopus マージを再生するときに、基になる " " にコマンド ライン オプションを正しく渡しませんでした(git merge
デフォルト戦略を使用した 2 ヘッド マージの再生が別のコードパスで行われたため) 、ほとんどのユーザーでは問題は発生しませんでした)、これは Git 2.30 (Q1 2021) で修正されました。
commit 43ad4f2、commit 19dad04、commit ae03c97 (2020 年 10 月 18 日) by Samuel Čavoj ( sammko
)を参照してください。
( 2020 年 11 月 2 日にコミット 73af6a4でJunio C Hamanoによってマージされました)gitster
sequencer
:サブコマンドgpg
に渡されたオプションを修正merge
署名者: Samuel Čavoj
または octopus マージで指定されたカスタム戦略
rebase
を使用して を実行し、同時に(または configのいずれかを)有効にした場合、操作はマージ コミットの作成に失敗していました。 キー ID が置換された" " の代わりに、裸のキー ID のみが基になるマージ コマンドに渡され、それを参照として解釈しようとします。--rebase-merges
-s
gpgsign
rebase -S
commit.gpgsign
-S%s
Johannes Schindelin と Junio C Hamano の提案に従って、問題を修正し、テスト ケースを追加します。