はじめに
この実験では、特定の作者によって Git コミットが行われたかどうかを確認する方法を学びます。主に 2 つの方法を探っていきます。1 つは、git log --author を使用してコミット履歴をフィルタリングし、特定の個人によるコミットを表示する方法です。もう 1 つは、コミットハッシュとともに git show を使用して、単一のコミットの作者詳細を確認する方法です。
実践的な演習を通じて、サンプルの Git リポジトリ内でこれらのコマンドを適用する練習を行います。作者名でコミットをフィルタリングし、その後 git show を使用して特定のコミットの作者情報を調べる方法をデモンストレーションします。これにより、Git 履歴内の任意の変更の貢献者を効果的に特定できるようになります。
git log --author を実行してフィルタリングする
このステップでは、git log コマンドに --author フラグを使用してコミット履歴をフィルタリングする方法を学びます。特定の人物によって行われたコミットのみを表示したい場合に便利です。
まず、プロジェクトディレクトリにいることを確認しましょう。ターミナルを開き、次のコマンドを入力します。
cd ~/project/my-time-machine
次に、--author フラグを付けた git log を使用して、"Jane Doe" によるコミットを表示しましょう。セットアップステップで作者名を設定したことを思い出してください。
git log --author="Jane Doe"
前の実験で行ったコミットが表示されるはずです。
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Jane Doe <jane.doe@example.com>
Date: Mon Aug 7 10:00:00 2023 +0000
Send a message to the future
他の作者によるコミットがあった場合、それらはこの出力には表示されません。これは、特定の個人の貢献に焦点を当てるためにコミット履歴を簡単にフィルタリングできることを示しています。
作者別にコミットログをフィルタリングできることは、特にチームで作業する際に強力なツールです。特定の変更を誰が行ったかをすぐに確認し、各チームメンバーの貢献を理解することができます。
ログビューを終了するには、q を押します。
git show を使用して作者を確認する
このステップでは、git show コマンドを使用して、特定のコミットの詳細(作者情報を含む)を表示します。単一のコミットを詳細に調べたい場合に便利です。
まだ ~/project/my-time-machine ディレクトリにいることを確認してください。
まず、コミットのコミットハッシュ(一意の識別子)を取得しましょう。git log --oneline を使用して、ログの短縮版を取得できます。
git log --oneline
次のような出力が表示されるはずです。
a1b2c3d (HEAD -> master) Send a message to the future
最初の部分 a1b2c3d(あなたのハッシュは異なります)が短縮コミットハッシュです。このハッシュをコピーします。
次に、コピーしたコミットハッシュを git show コマンドの後に入力します。
git show <paste_your_commit_hash_here>
たとえば、あなたのハッシュが a1b2c3d だった場合、次のように入力します。
git show a1b2c3d
出力には、その特定のコミットの詳細(作者を含む)が表示されます。
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Jane Doe <jane.doe@example.com>
Date: Mon Aug 7 10:00:00 2023 +0000
Send a message to the future
diff --git a/message.txt b/message.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/message.txt
@@ -0,0 +1 @@
+Hello, Future Me
Author: 行から、このコミットが "Jane Doe" によって行われたことを明確に確認できます。git show コマンドは、個々のコミットを調べ、どのファイルが変更されたかを正確に確認し、それらの変更内容を表示する強力な方法です。
表示を終了するには、q を押します。
複数の作者でテストする
このステップでは、別の作者がコミットを行うシミュレーションを行い、git log --author が複数の貢献者の場合にどのように機能するかを確認します。
まず、次のコミットのために Git の作者設定を変更しましょう。これはこのリポジトリに対して一時的に行うことができます。
git config user.name "John Smith"
git config user.email "john.smith@example.com"
次に、"John Smith" として新しいファイルを作成しましょう。
echo "Hello from John" > johns-file.txt
新しいファイルをステージングエリアに追加します。
git add johns-file.txt
そして、"John Smith" として変更をコミットします。
git commit -m "Add a file from John"
"John Smith" によって新しいコミットが作成されたことを示す出力が表示されるはずです。
次に、git log を使用して完全な履歴を表示しましょう。
git log
"Jane Doe" によるコミットと "John Smith" によるコミットの 2 つのコミットが表示されます。
次に、ログをフィルタリングして、"Jane Doe" によるコミットのみを表示しましょう。
git log --author="Jane Doe"
これにより、最初のコミットのみが表示されます。
最後に、ログをフィルタリングして、"John Smith" によるコミットのみを表示しましょう。
git log --author="John Smith"
これにより、2 番目のコミットのみが表示されます。
これは、git log --author が作者に基づいてコミットをフィルタリングするのに有効であることを示しており、これは共同プロジェクトでの貢献を追跡するために不可欠です。
ログビューを終了するには、q を押します。
まとめ
この実験では、特定の作者によって Git コミットが行われたかどうかを確認する方法を学びました。まず、git log --author コマンドを使用してコミット履歴をフィルタリングし、指定された作者によるコミットのみを表示しました。これにより、チーム環境における個々の貢献に焦点を当てる際のこのコマンドの有用性を実証しました。
その後、特定のコミットハッシュを指定して git show コマンドを使用し、そのコミットに関する詳細情報(作者の名前やメールアドレスを含む)を表示しました。これにより、特定の変更の作者を確認する方法を提供しました。最後に、複数の作者を対象にこれらの方法をテストし、異なる個人の貢献を区別する際の有効性を確認しました。



