他のブランチでテストする
このステップでは、新しいブランチを作成し、そのブランチ上でコミットを行います。これにより、特定のコミットが 1 つのブランチにのみ存在する場合に、git branch --contains
コマンドがどのように動作するかを確認します。これを通じて、Git が異なる開発ライン間でコミットを追跡する仕組みをより深く理解することができます。
まず、feature-branch
という名前の新しいブランチを作成しましょう。~/project/my-time-machine
ディレクトリにいることを確認してください。
cd ~/project/my-time-machine
git branch feature-branch
次に、新しいブランチに切り替えましょう。
git checkout feature-branch
新しいブランチに切り替わったことを示す出力が表示されるはずです。
Switched to branch 'feature-branch'
この feature-branch
上で新しいコミットを行いましょう。
echo "Adding a feature" >> feature.txt
git add feature.txt
git commit -m "Add a new feature file"
次に、git log --oneline
を使用してこの新しいコミットのコミットハッシュを取得しましょう。
git log --oneline
出力では、新しいコミットが一番上に表示され、その後に以前のコミットが続きます。「Add a new feature file」コミットのハッシュをコピーしてください。
次に、「Add a new feature file」コミットのハッシュを使用して git branch --contains
を実行しましょう。[feature_commit_hash]
をコピーした実際のハッシュに置き換えてください。
git branch --contains [feature_commit_hash]
出力は * feature-branch
のみが表示されるはずです。これは、この特定のコミットが feature-branch
を作成して切り替えた 後 に行われたため、このブランチの履歴にのみ存在するからです。
次に、最初のコミット("Send a message to the future")のハッシュを使用して再度 git branch --contains
を試してみましょう。[first_commit_hash]
を前のステップで使用したハッシュに置き換えてください。
git branch --contains [first_commit_hash]
今回は、feature-branch
と * master
の両方が表示されるはずです。これは、feature-branch
が master
ブランチから作成されたため、その時点で master
上にあったすべてのコミット、最初のコミットを含めて、を含んでいるからです。
これにより、git branch --contains
がブランチとそれに含まれるコミットの関係を理解するのにどのように役立つかがわかります。