[英]Sign git commits with GPG
有沒有辦法用 gpg 簽署 git 提交? 使用標簽(使用-s
而不是-a
)非常簡單,似乎會有類似的 function 用於提交。
注意:始終添加-S
選項可能很麻煩。
在 git 2.0 及更高版本中,您可以添加一個配置來為您處理該選項。
請參閱Nicolas Vigier (boklm) 提交的 2af2ef3 :
commit.gpgsign
選項以簽署所有提交如果你想 GPG 簽署你所有的提交,你必須一直添加
-S
選項。
commit.gpgsign
配置選項允許自動簽署所有提交。
commit.gpgsign
一個 boolean 指定是否所有提交都應該進行 GPG 簽名。
在執行諸如 rebase 之類的操作時使用此選項可能會導致簽署大量提交。 使用代理避免多次輸入 GPG 密碼可能很方便。
要在命令行上全局設置它:
git config --global commit.gpgsign true
在 Git 2.27(2020 年第 2 季度)中,“ git rebase
”了解了“ --no-gpg-sign
”選項以反制用戶可能擁有的commit.gpgSign
。
請參閱Đoàn Trần Công Danh (``)的提交 5c5bac1 、 提交 4369d3a 、 提交 9da37fe 、 提交 ae06ba6 、 提交 cf0ad4d 、 提交 c241371 (2020 年 4 月 3 日)。
(由Junio C Hamano 合並gitster
提交 fc3f6fd ,2020 年 4 月 22 日)
cherry-pick/revert
: honor--no-gpg-sign
在所有情況下簽字人:Đoàn Trần Công Danh
{cherry-pick,revert} --edit 尚未兌現 --no-gpg-sign。
將此選項傳遞給
git commit
以兌現它。
請注意,“ git rebase --rebase-merges
” ( man )在使用非默認合並策略重放合並或重放章魚合並時,沒有正確地將--gpg-sign
命令行選項傳遞給底層“ git merge
”(因為使用默認策略重放雙頭合並是在單獨的代碼路徑中完成的,大多數用戶沒有觸發該問題),該問題已通過 Git 2.30(2021 年第一季度)得到糾正
請參閱Samuel Çavoj ( sammko
)的提交 43ad4f2 、 提交 19dad04和提交 ae03c97 (2020 年 10 月 18 日)。
(由Junio C Hamano 合並gitster
提交 73af6a4,2020年 11 月 2 日)
sequencer
:修復傳遞給 merge 子命令的 gpg 選項簽字人:Samuel Çavoj
當使用
-s
指定的自定義策略或章魚合並使用--rebase-merges
執行變基時,同時啟用gpgsign
(rebase-S
或 configcommit.gpgsign
),操作將失敗合並提交。而不是替換了密鑰 ID 的“
-S%s
”,只有裸密鑰 ID 會傳遞給底層合並命令,該合並命令試圖將其解釋為引用。按照 Johannes Schindelin 和 Junio C Hamano 的建議修復問題並添加測試用例。
和:
sequencer
: 通過顯式--no-gpg-sign
進行merge
簽字人:Samuel Çavoj
為與非默認策略合並而啟動的合並子命令將使用其自己的默認行為來決定如何簽署提交,而不管
opts->gpg_sign
設置為什么。
例如,如果commit.gpgsign
被設置為true
,顯式給 rebase 的--no-gpg-sign
標志將被忽略。解決這個問題並添加一個測試這個行為的案例。
固定於:
“ git rebase --rebase-merges
--gpg-sign
git merge
man )在使用非默認合並策略重放合並或重放章魚合並時(因為重放使用默認策略的雙頭合並是在單獨的代碼路徑中完成的,大多數用戶沒有觸發該問題),已通過 Git 2.30(2021 年第一季度)更正,.
請參閱Samuel Çavoj ( sammko
)的提交 43ad4f2 、 提交 19dad04和提交 ae03c97 (2020 年 10 月 18 日)。
(由Junio C Hamano 合並gitster
提交 73af6a4,2020年 11 月 2 日)
sequencer
:修復傳遞給merge
子命令的gpg
選項簽字人:Samuel Çavoj
當使用
-s
指定的自定義策略或章魚合並使用--rebase-merges
執行rebase
時,同時啟用gpgsign
(rebase -S
或 configcommit.gpgsign
),操作將失敗合並提交。
而不是替換了密鑰 ID 的“-S%s
”,只有裸密鑰 ID 會傳遞給底層合並命令,該合並命令試圖將其解釋為引用。按照 Johannes Schindelin 和 Junio C Hamano 的建議修復問題並添加測試用例。
git commit -S
(需要 git >= 1.7.9)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.