git を使用してコードをコミットするとき、user.name と user.email という 2 つのグローバル変数を通知する必要があります。ただし、他のユーザーや無効な名前や電子メールを含め、任意の電子メールや情報を入力できます。git はどのようにこの情報を保証しますか?
3 に答える
2
インバウンド コミットで利用可能な最高のセキュリティを簡単に取得できますが、認証方法を選択するのは git の仕事ではありません。git は OS 認証を制御できません。選択したセキュリティ システムをプラグインできるようにするだけです。Git フック、特にpre-receiveフックは、まさにそれを行うために実装されています。 GPGは、その柔軟性、信頼する識別標準を完全に制御できること、普遍的に利用できること、15 年間のセキュリティ監査に耐えてきたことなどから広く選ばれています。
(編集: さらに、git は作成者とコミッターを区別します。コミットの影響は他の履歴に再適用される可能性があるため、コミットの作成者は元の作業に対して責任を負うことができますが、変更が他の場所で再適用される場合は、それらを適用する人は、忠実度について責任を負うことができます。)
(文言、タイプミス、リンク)
于 2013-10-21T16:57:34.323 に答える
2
そうではありません。誰がプッシュしているかを信頼する必要があります。
それにはいくつかの回避策とそれぞれの欠点があります。
- 更新フックのチェックイン: 別の作成者のコミットの正当な再利用を拒否する可能性があります (ここで指摘されているように、チェリー ピッキングの場合など) 。
- 複数のリポジトリと GPG 署名の使用: 非常に官僚的な解決策
- ssh 経由で使用している場合は sshd ロギングを使用します。ただし、操作を否定するものではありません。
pre-receiveまたはupdate フックを使用して独自のものを作成することもできます
于 2013-10-21T16:39:23.293 に答える