[解決済み】GitのコミットをGPGキーで「自動署名」する方法はありますか?
質問
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
または、キーホルダーに秘密鍵を持っていないだけです。
注意事項
-
規約により
git 2.4.0 2015年3月以降
であれば、それは
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 .
関連
-
[解決済み] git update-index --assume-unchanged <file> を元に戻す。
-
[解決済み] Git のアンプッシュされたコミットを表示する
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitを使って最後のXコミットをまとめる
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] git に自分の好きなエディタを使わせてコミットするにはどうしたらいいですか?
-
[解決済み] コミットをプッシュするためにhttpsの認証情報をキャッシュする方法はありますか?
-
[解決済み] Git のローカルコミットを破棄する
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ファイルのアンリンクに失敗しました。もう一度試してみるべきですか?
-
[解決済み】未マージファイルがあるため、Gitマージができない
-
git revert + git rebase 一度に複数のコミット_本然233的博客程式员息信网_git revert Multiple
-
[解決済み] リモートの <ブランチ名> とマージするように設定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み】gpgがデータの署名に失敗した fatal: failed to write commit object [Git 2.10.0].
-
[解決済み】Git Push Error: リポジトリデータベースにオブジェクトを追加する権限が不足しています。
-
[解決済み] 現在の支店にはトラッキング情報がありません
-
[解決済み] git commit signing failed: secret key not available.
-
[解決済み] 新しいBitbucketでリポジトリを削除するにはどうすればよいですか?
-
[解決済み] Gitのサインオフ機能は何のためにあるのですか?