0

私と友人は、同じ github リポジトリを共有する同じプロジェクトで作業しています。私たちの両方の身元を明らかにするために、私の友人は彼のローカル PC でコマンドを発行して、私の身元に一致する彼の身元を提案し、マスクしました。

$ git config --global user.name "XYZ"
$ git config --global user.email "xyz@example.com"

そのアプリケーションの git ログを取得した 1 日の終わりに、私たち両方によって行われたすべてのコミットを見ることができますが、すべてのコミットには同じユーザー名と電子メール アドレスが含まれています。

友人が行ったコミットから自分が行ったコミットを特定するにはどうすればよいですか?

4

3 に答える 3

0

サーバー (GitHub など)の分散型の性質によりgit、受信したコミット メッセージで提示された ID を受け入れる必要があります。これらの身元を認証できるようにしたい場合は、GPG などを使用してコミットに暗号署名する必要があります。 このページでは、その方法について説明します。-Sすでに GPG が構成されていると仮定すると、コミット コマンド ラインに次のように追加するだけです。

git commit -S -m "this is a test"

また、「git log --show-signature」を使用してコミット ID を確認できます。これにより、次のような出力が得られます。

commit dadcd364efe5e2751b9ee4ef9a3e9b1b4e2ba4f9
gpg: Signature made Wed Jul 24 08:14:44 2013 EDT
gpg:                using RSA key 0x042DF6CF74E4B84C
gpg: Good signature from "Lars Kellogg-Stedman <lars@oddbit.com>" [ultimate]
Author: Lars Kellogg-Stedman <lars@oddbit.com>
Date:   Wed Jul 24 08:14:38 2013 -0400

    removed things

...ただし、署名を信じるためには、GPG の Web-of-Trust を正しく管理する必要があります。

于 2013-07-24T12:15:40.250 に答える
0

両方とも同じ作成者情報を使用している場合、コミットの作成者を知ることはできません。各ユーザーに固有のものである必要があります。それが目的です。

于 2013-07-24T12:11:07.747 に答える
0

git log --show-signatureGit 2.10 (2016 年第 3 四半期)の変更点に注意してください。

commit 2376d31
merged tag 'v2.9.3'
gpg: Signature made Fri 12 Aug 2016 09:17:59 AM PDT using RSA key ID 96AFE6CB <=====
gpg: Good signature from "Junio C Hamano <gitster@pobox.com>"
gpg:                 aka "Junio C Hamano <jch@google.com>"
gpg:                 aka "Junio C Hamano <junio@pobox.com>"
Merge: 2807cd7 e0c1cea
Author: Junio C Hamano <gitster@pobox.com>
Date:   Fri Aug 12 10:02:18 2016 -0700

commit 2376d31
merged tag 'v2.9.3'
gpg: Signature made Fri 12 Aug 2016 09:17:59 AM PDT
gpg:                using RSA key B0B5E88696AFE6CB           <=======================
gpg: Good signature from "Junio C Hamano <gitster@pobox.com>"
gpg:                 aka "Junio C Hamano <jch@google.com>"
gpg:                 aka "Junio C Hamano <junio@pobox.com>"
Merge: 2807cd7 e0c1cea
Author: Junio C Hamano <gitster@pobox.com>
Date:   Fri Aug 12 10:02:18 2016 -0700

Linus Torvalds ( )によるコミット b624a3e (2016 年 8 月 16 日)を参照してください。( 2016 年 8 月 19 日コミット 83d9eb0Junio C Hamanoによってマージされました)torvalds
gitster

gpg-interface: pgp 署名を検証するときは、「長い」鍵形式の出力を優先します

はい、gpg2 はすでにデフォルトで長い形式を使用していますが、ほとんどのディストリビューションでは、互換性の理由から、古い 1.x バージョンの "gpg" がまだ使用されているようです。また、古いバージョンの gpg は 32 ビットの短い ID しか表示しないため、非常に安全ではありません。

これは実際には検証自体には関係ありません。検証に合格した場合、pgp 署名は良好です。
しかし、実際にキーをまだ持っておらず、取得したい場合、または検証に使用されたキーを正確に確認して確認したい場合は、キーをより正確に指定する必要があります

実際、鍵の指紋全体を優先的に指定する必要がありますが、gpg は実際にはそれをサポートしていません。これは本当に悲しいことです。

「長い」形式を表示すると、少なくとも 64 ビットのフィンガープリントが表示されるように改善されます。完璧ではありませんが、その方がはるかに優れています。

于 2016-08-22T06:12:30.290 に答える