HOWTO · Git

Git의 두 분기에 대한 최근 공통 조상 식별

Git에서 두 분기에 대한 최근 공통 조상 커밋을 찾을 수 있습니다.

이 기사에서는 Git에서 최근 공통 조상 커밋을 찾는 방법을 설명합니다. 이는 브랜치를 생성하거나 다른 브랜치에 병합할 때 유용합니다.

더 이상 고민하지 않고 오늘의 의제로 넘어가겠습니다.

Git의 두 분기에 대한 최근 공통 조상 식별

Git에서 두 분기의 공통 조상은 무엇입니까?

아래 이미지를 살펴보세요.

두 브랜치의 공통 조상

위의 이미지에는 feature 분기를 생성한 main 분기와 feature 분기에서 new feature 분기가 있습니다. main 분기를 없애고 featurenew-feature 분기에 집중하겠습니다.

bd9172c 커밋 후에 new-feature 브랜치를 생성한 것을 볼 수 있습니다. 짐작하셨겠지만 bd9172c 커밋은 featuremain 브랜치의 최근 공통 조상입니다.

그렇다면 두 가지의 최근 공통 조상을 어떻게 찾을 수 있을까요?

git merge-base 명령만 있으면 됩니다. Git의 문서에서 git merge-base 명령은 git merge의 가장 좋은 공통 조상을 찾는 데 도움이 됩니다.

그러나 제공된 분기에 대한 가장 최근의 공통 조상을 표시하기 위해 인수로 두 개의 분기를 공급할 수 있습니다.

통사론:

$ git merge-base <Branch 1> <Branch 2>

예를 들어 보겠습니다.

아래 예는 로컬 저장소의 masterfeature 분기를 보여줍니다. 둘 사이의 공통 조상을 찾기 위해 아래와 같이 git merge-base 명령을 실행합니다.

$ git merge-base master feature

이 명령은 공통 조상에 대한 커밋 해시를 표시해야 합니다.

출력:

git merge-base

아래 명령을 시각적 로그에 사용할 수 있습니다.

$ git log --graph --oneline --all --decorate

다음과 같은 결과를 얻어야 합니다.

시각적 로그

이전에 git merge-base 명령을 실행하여 얻은 것과 동일한 커밋 해시인 2dbe38d 커밋의 master에서 feature 분기가 포크된 것을 볼 수 있습니다.

Git에서 두 개의 브랜치에 대한 가장 최근의 공통 조상 커밋을 git merge-base 명령을 사용하여 가까이에 있는 브랜치를 공급하는 동안 찾을 수 있습니다. 이 명령은 가장 최근의 공통 조상만 가져옵니다.