2015-01-25 6 views
1

수정본에는 여러 개의 부모 (병합)와 여러 개의 자식이있을 수 있으므로 "가장 최근 공통 조상"이 모호 할 수 있습니까? 예를 들어git에서 가장 공통적 인 조상은 모호 할 수 있습니까?

는 :

A---B--C--D                                    
\ \ /
    \ E/
    \// 
    F-G 

E와 D에 대한 가장 최근의 공통 조상은 B이거나 F.

나는 자식이 복제 시도

그리고 나는 그것이 공통 조상으로 B를 준 생각할 수 있습니다. F를 통해 B를 선택할 수있는 근거가 있습니까? 아마도 타임 스탬프를 원합니까? 아니면 알고리즘에 의해 발견 된 최초의 공통 조상입니까? 이것은 임의의 구현 세부 사항입니까?

답변

4

그냥 불가능,이 documentation for git merge-base에서 언급 한 것 :

자식 병합베이스는 3 방향 병합에 사용하는 두 커밋 사이의 최적의 공통 조상 (들)을 발견한다. 하나의 공통 조상은 후자가 조상이라면 다른 조상보다 더 낫습니다. 더 나은 공통 조상이없는 공통 조상은 가장 일반적인 조상 인, 즉 병합베이스입니다. 커밋 쌍에 대해 하나 이상의 병합베이스가있을 수 있습니다.

[강조 광산-I는 강조 문장이 "최고", 정말 단어를 포함해야한다고 생각], 그리고 :

가 ... 어느 하나 (둘 다 을있는 다른보다 낫다 최고 병합 기준). --all 옵션이 주어지지 않을 때, 어떤 것이 출력되는지는 명확하지 않다.

(이는 제안한대로 구현 세부 사항입니다.)