署名されていないコミットをテストする
このステップでは、署名なしで別のコミットを作成し、前のステップで学んだ検証コマンドを使用したときに Git がそれをどのように扱うかを観察します。これにより、Git が署名されていないコミットをどのように識別するかについての理解が深まります。
まず、プロジェクトディレクトリにいることを確認します。
cd ~/project/my-time-machine
message.txt
ファイルに別の行を追加しましょう。
echo "This is a second message." >> message.txt
>>
演算子は、テキストを既存のファイルに追加します。では、状態を確認しましょう。
git status
message.txt
が変更されたことが表示されるはずです。
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: message.txt
no changes added to commit (use "git add" and/or "git commit -a")
では、変更をステージングし、新しいコミットを作成しましょう。このコミットには署名しません。
git add message.txt
git commit -m "Add a second message"
新しいコミットが確認される出力が表示されます。
[master a1b2c3d] Add a second message
1 file changed, 1 insertion(+)
2 つ目の署名されていないコミットができたので、git log --show-signature
を再度使用して履歴を確認しましょう。
git log --show-signature
ログには両方のコミットが表示されます。まだ署名を設定していないため、どちらも署名情報は表示されません。
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Jane Doe <[email protected]>
Date: Mon Aug 7 10:00:00 2023 +0000
Add a second message
commit u1v2w3x4y5z6a7b8c9d0e1f2g3h4i5j6k7l8m9n0
Author: Jane Doe <[email protected]>
Date: Mon Aug 7 10:00:00 2023 +0000
Send a message to the future
最後に、新しいコミットに対して git verify-commit
を使用しましょう。git log --oneline
を使用して最新のコミットの短いハッシュを取得し、以下の YOUR_NEW_COMMIT_HASH
を置き換えます。
git log --oneline
a1b2c3d (HEAD -> master) Add a second message
u1v2w3x Send a message to the future
では、新しいコミットを検証しましょう。
git verify-commit YOUR_NEW_COMMIT_HASH
再び、出力にはコミットの詳細が表示されますが、署名の検証ステータスは表示されず、このコミットも署名されていないことが確認されます。
このステップでは、デフォルトでは Git のコミットには署名されないことを示しています。セキュリティと信頼性を高めるには、明示的に Git を設定してコミットに署名する必要があります。これは、この入門実験では扱わない高度なトピックです。ただし、git log --show-signature
と git verify-commit
を使用して署名されていないコミットを識別する方法を理解することは、署名付きコミットを扱う上での最初のステップです。