Git の 2つのブランチの最近の共通の祖先を特定する
この記事では、Git で最近の共通祖先コミットを見つける方法を説明します。 これは、ブランチを作成したり、別のブランチにマージしたりするときに便利です。
早速、今日の議題に入りましょう。
Git の 2つのブランチの最近の共通の祖先を特定する
Git の 2つのブランチの共通の祖先は何ですか?
下の画像を見てください。
上の画像では、feature
ブランチを作成した main
ブランチと、feature
ブランチからの new feature
ブランチがあります。 main
ブランチをやめて、feature
と new-feature
ブランチに注目しましょう。
bd9172c
コミットの後に new-feature
ブランチを作成したことがわかります。 ご想像のとおり、bd9172c
コミットは、feature
ブランチと main
ブランチの最近の共通の祖先です。
では、2つの分岐の最近の共通の祖先をどのように見つけるのでしょうか?
必要なのは git merge-base
コマンドだけです。 Git のドキュメントによると、git merge-base
コマンドは、git merge
の最適な共通祖先を見つけるのに役立ちます。
ただし、引数として 2つのブランチをフィードして、提供されたブランチの最新の共通の祖先を表示できます。
構文:
$ git merge-base <Branch 1> <Branch 2>
例を見てみましょう。
以下の例は、ローカル リポジトリの master
および feature
ブランチを示しています。 2つの間の共通の祖先を見つけるために、以下に示すように git merge-base
コマンドを実行します。
$ git merge-base master feature
このコマンドは、共通の祖先のコミット ハッシュを表示する必要があります。
出力:
視覚的なログには、以下のコマンドを使用できます。
$ git log --graph --oneline --all --decorate
次のようなものを取得する必要があります。
feature
ブランチが master
から 2dbe38d
コミットで分岐したことがわかります。これは、前に git merge-base
コマンドを実行して取得したコミット ハッシュと同じです。
Git の 2つのブランチの最新の共通祖先コミットを見つけるには、手元のブランチをフィードしながら git merge-base
コマンドを使用します。 このコマンドは、最新の共通祖先のみを取得することに注意してください。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn