はじめに
この実験では、Git ブランチに特定のコミットが含まれているかどうかを確認する方法を学びます。まず、git log
コマンドとそのフィルタリングオプションを調べ、メッセージ内容や作者に基づいてコミットを検索します。次に、git branch --contains
コマンドを使用して、特定のコミットが含まれているブランチを効率的に特定します。最後に、コミットのハッシュを使用して直接コミットの存在を確認することで、調査結果を検証します。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、Git ブランチに特定のコミットが含まれているかどうかを確認する方法を学びます。まず、git log
コマンドとそのフィルタリングオプションを調べ、メッセージ内容や作者に基づいてコミットを検索します。次に、git branch --contains
コマンドを使用して、特定のコミットが含まれているブランチを効率的に特定します。最後に、コミットのハッシュを使用して直接コミットの存在を確認することで、調査結果を検証します。
git log
を実行してコミットを検索するこのステップでは、git log
コマンドを使用してプロジェクトの履歴から特定のコミットを検索する方法を学びます。プロジェクトが成長し、コミットが増えるにつれて、git log
の出力は非常に長くなることがあります。Git はこの履歴をフィルタリングして検索するための強力なオプションを提供しています。
まず、プロジェクトディレクトリにいることを確認しましょう。
cd ~/project/my-time-machine
次に、検索対象となる履歴を作成するために、いくつかのコミットを追加しましょう。新しいファイルを追加し、既存のファイルに変更を加えます。
新しいファイルを作成します。
echo "This is my second file." > second_file.txt
新しいファイルを追加してコミットします。
git add second_file.txt
git commit -m "Add a second file"
以下のような出力が表示されるはずです。
[master a1b2c3d] Add a second file
1 file changed, 1 insertion(+)
create mode 100644 second_file.txt
次に、message.txt
ファイルを変更します。
echo "Adding another line." >> message.txt
変更を追加してコミットします。
git add message.txt
git commit -m "Update message.txt"
以下のような出力が表示されるはずです。
[master e4f5g6h] Update message.txt
1 file changed, 1 insertion(+)
これで複数のコミットがある状態になったので、git log
を使用して履歴を表示しましょう。
git log
3 つのコミットがすべて表示されます。ログビューを終了するには q
を押します。
コミットメッセージに特定の単語が含まれるコミットを検索するには、--grep
オプションを使用できます。「message」という単語が含まれるコミットを検索してみましょう。
git log --grep "message"
このコマンドは、メッセージに「message」という単語が含まれるコミットのみを表示します。最初と 3 番目のコミットが表示されるはずです。
また、--author
オプションを使用して、作者によるコミットを検索することもできます。「Jane Doe」(セットアップで設定した名前)によるコミットを検索してみましょう。
git log --author "Jane Doe"
これにより、「Jane Doe」によるすべてのコミットが表示されます。この場合、3 つのコミットすべてが表示されるはずです。
--grep
や --author
などのオプションを使用した git log
は、大規模なプロジェクトを操作し、特定の変更や貢献を見つけるために不可欠です。これは、プロジェクトの履歴に対する強力な検索エンジンのようなものです!
git branch --contains
を使用してコミットを確認するこのステップでは、git branch --contains
コマンドを使用して、特定のコミットが含まれているブランチを見つける方法を学びます。複数のブランチがあり、特定の変更がどこに存在するかを知りたい場合に便利です。
まず、プロジェクトディレクトリにいることを確認しましょう。
cd ~/project/my-time-machine
このコマンドをデモンストレーションするために、新しいブランチを作成しましょう。feature-branch
という名前にします。
git branch feature-branch
このコマンドは新しいブランチを作成しますが、そのブランチに切り替えることはありません。git branch
を使用してブランチを表示できます。
git branch
以下のような表示がされ、master
がハイライトされているはずです(現在のブランチを示しています)。
* master
feature-branch
次に、最初のコミットのハッシュを取得しましょう。git log --oneline
を使用して、コミットハッシュ付きの簡略化されたログを表示できます。
git log --oneline
以下のような出力が表示されます(ハッシュは異なります)。
e4f5g6h (HEAD -> master) Update message.txt
a1b2c3d Add a second file
abcdef0 Send a message to the future
最初のコミット("Send a message to the future")のハッシュをコピーします。上の例では、abcdef0
です。
次に、最初のコミットのハッシュを指定して git branch --contains
を使用しましょう。
git branch --contains abcdef0
abcdef0
を実際の最初のコミットのハッシュに置き換えてください。
出力には master
と feature-branch
の両方が表示されるはずです。
* master
feature-branch
これは、"Send a message to the future" というコミットが master
ブランチと feature-branch
ブランチの両方に存在することを示しています。これは、feature-branch
を master
ブランチ上で作成し、最初のコミットはすでに master
の一部であったため、理にかなっています。
次に、最後のコミット("Update message.txt")のハッシュを取得しましょう。上の例では、e4f5g6h
です。
最後のコミットのハッシュを指定して git branch --contains
を使用しましょう。
git branch --contains e4f5g6h
e4f5g6h
を実際の最後のコミットのハッシュに置き換えてください。
出力には master
のみが表示されるはずです。
* master
これは、最後のコミットは feature-branch
を作成した 後 に master
ブランチ上で行われたためです。したがって、feature-branch
にはこのコミットは含まれていません。
git branch --contains
コマンドは、コミットとブランチの関係を理解するための強力なツールであり、特定の変更がどこに統合されたかを追跡するのに役立ちます。
このステップでは、プロジェクトの履歴における特定のポイントを参照するためにコミットハッシュを使用する練習を行います。Git の各コミットには一意のハッシュがあり、これはコミットの指紋のようなものです。このハッシュを使用して、特定のコミットの詳細を表示したり、その時点に戻ったりすることができます。
まず、プロジェクトディレクトリにいることを確認しましょう。
cd ~/project/my-time-machine
コミットハッシュを取得するために、再度コミットログを表示しましょう。
git log --oneline
以下のような出力が表示されます(ハッシュは異なります)。
e4f5g6h (HEAD -> master) Update message.txt
a1b2c3d Add a second file
abcdef0 Send a message to the future
次に、最初のコミットのハッシュを使用してその詳細を表示しましょう。最初のコミット("Send a message to the future")のハッシュをコピーします。上の例では、abcdef0
です。
git show
コマンドに続けてコミットハッシュを指定します。
git show abcdef0
abcdef0
を実際の最初のコミットのハッシュに置き換えてください。
このコマンドは、その特定のコミットに関する詳細情報を表示します。これには、作者、日付、コミットメッセージ、およびそのコミットで導入された変更が含まれます。このコミットで message.txt
ファイルが作成されたことがわかります。
q
を押して git show
の表示を終了します。
次に、2 番目のコミット("Add a second file")の詳細を表示しましょう。git log --oneline
の出力からそのハッシュをコピーします。上の例では、a1b2c3d
です。
2 番目のコミットのハッシュを指定して git show
を使用します。
git show a1b2c3d
a1b2c3d
を実際の 2 番目のコミットのハッシュに置き換えてください。
これにより、2 番目のコミットの詳細が表示され、second_file.txt
が作成されたことがわかります。
最後に、最後のコミット("Update message.txt")の詳細を表示しましょう。そのハッシュをコピーします。上の例では、e4f5g6h
です。
最後のコミットのハッシュを指定して git show
を使用します。
git show e4f5g6h
e4f5g6h
を実際の最後のコミットのハッシュに置き換えてください。
これにより、最後のコミットの詳細が表示され、message.txt
に一行が追加されたことがわかります。
コミットハッシュを指定して git show
を使用することで、プロジェクトの履歴にある特定のコミットの内容と変更を調べることができます。これは、デバッグ、機能の実装方法の理解、または過去の作業のレビューに非常に役立ちます。
この実験(Lab)では、Git ブランチが特定のコミットを含んでいるかどうかを確認する方法を学びました。まず、git log
コマンドとそのフィルタリングオプションを調べました。たとえば、コミットメッセージを検索する --grep
や、作者で検索する --author
などを使って、プロジェクト履歴内のコミットを見つけました。
次に、git branch --contains
コマンドを使って、ブランチが特定のコミットを含んでいるかどうかを直接確認する方法を学びます。最後に、コミットハッシュを使ってこれを検証します。