@Evian のヒントによると、--sign-off と --gpg-sign には違いがあります。興味がある場合は、次のことを確認してください。彼女の回答のコメントを参照してください。回答は以下の Google 検索から引用: --sign-off 和 --gpg-sign 是有区别的,这个是有历史原因的,感兴趣的可以看看她答案里的评论。以下引用 Google 搜索的答案:
-s adds a "signed off by" field to the commit. -S actually GPG signs the commit, which was added in git 1.7.9. Also, this does not sign all commits, but only those which are made by the user directly using the git c command. In a rebase, when new commits are created, this will not sign off on (or PGP sign) the commits, unless you do an interactive rebase and manually commit every change.
まず、サインオフと署名を区別します。 @nightfire が署名について説明しました。サインオフの意味を説明(翻訳)してみましょう。
「多くのオープンソース プロジェクトがサインオフを必要としている」のを見たことがありません。最も有名なのは Linux カーネルです。そのドキュメントには次のように書かれています:
Linux の開発プロセスでは、GitHub によって作成された「プル リクエスト」を使用せず、(配布された) 電子メールを介してパッチを送信するためです (そのため、git は電子メールをかなり適切にサポートしています)。パッチが送受信される場合は、それらを追跡する必要があります。そうしないと、BSD で経験したような悪影響が発生し、開発に影響を及ぼします。 「Signed-off-by」は実際には、送信するパッチが「Developer's Certificate of Origin 1.1」のポイントに準拠していることを保証する声明です。簡単な答えは あなたがあなたであることを証明するためです!
一般に、送信するときは、作成者とコミッターの 2 つの情報があり、通常は 1 人 (プライベート プロジェクト、共有中央リポジトリ) になります。
Github が登場する前の時代 (たとえば、Linux Core の共同開発に初めて Git が使用されました)、現在誰もが慣れ親しんでいるプル リクエストは、それほど簡単に処理できるものではありませんでした。当時、パッチは分散開発によく使用されていました。たとえば、提出物 (この時点で作成者情報が生成されました) をプロジェクト マネージャ/メンテナに電子メールの添付ファイルとして送信し、プロジェクト マネージャ/メンテナがそれを中央ライブラリにマージしました。 (これは生成されたコミッター情報です)......
しかし、作成者もコミッターも、その「人」がその行為を行った本物であることを本質的に証明することはできません。開発者の名前と電子メールを知るのは簡単すぎるため、電子メールの添付ファイルとして送信されたパッチは、作成者があなたであることを証明できますか?電子メールを受信してマージする人は確実にコミッターである可能性がありますか? (プロジェクトに複数のマネージャー/メンテナーがいると仮定します)
したがって、これを重視する人は、安全な署名に GPG キーを使用します。これは、サインオフ です。実際、私も多くの電子署名を使用しています。これはデジタル署名用です。
できるだけシンプルかつ明確にしようとしましたが、実際には想像以上に詳細が記載されています。興味がある場合は、次の記事を参照してください: Git のホラー ストーリー: 署名されたコミットによるリポジトリの整合性。この記事では、Sign Off に関連するすべてについて話し終えていません。
もう一つの懸念点は、多くのプロジェクトにはライセンスが必要ですよね。ただし、プロジェクトでサードパーティのコードを使用する場合は、これらのコードのライセンス ポリシーが相互に排他的であるか、このプロジェクトのライセンスと競合する可能性があります。それが(あなたが質問したように)オープンソース プロジェクトであれば、この側面により多くの注意を払うでしょう(他の人から訴訟を起こされることを望みますか?)。 Git の Sign Off は 行まで 正確であり、コードの真のソースの検証になります (信頼性には疑問がありますが、何もしないよりはマシです。 ..)。これについては詳しくは述べませんが、少し聞いただけです。
署名を使用したい場合は、最も簡単な 3 つの手順に従う必要があります (Mac に基づく):
gunpg プログラムが必要です。Mac では homebrew を使用してインストールできます:
GPG秘密鍵を生成する必要があります。生成後は次のようになります。
#🎜 🎜##🎜🎜 #
それでは、これから
(大文字に注意してください)、送信時にあなたのデジタル署名が自動的に添付されます。あなたはあなた自身であり、偽造されることを拒否します。@Evian のヒントによると、
--sign-off
と--gpg-sign
には違いがあります。興味がある場合は、次のことを確認してください。彼女の回答のコメントを参照してください。回答は以下の Google 検索から引用:--sign-off
和--gpg-sign
是有区别的,这个是有历史原因的,感兴趣的可以看看她答案里的评论。以下引用 Google 搜索的答案:-S
可以两个一起做了,这是前面答案里推荐使用此选项的原因。所以--sign-off
只是署名,而--gpg-sign
是使用 GPG 秘钥来署名。OK,又错了……
-S