2016-07-21 2 views
5

이제 기능 지부에 있지만 개발 또는 릴리스 지사에서 생성되었는지 여부는 확인하지 마십시오.현재 브랜치의 git 부모 브랜치 이름을 얻는 방법은 무엇입니까?

현재 git 브랜치의 상위 브랜치 이름을 얻을 수있는 방법을 알려주십시오.

+1

확실하지 않은 질문이 있지만 여기에서 답변을 얻을 수 있습니다. http://stackoverflow.com/questions/3161204/find-the-parent-branch-of-a-git-branch –

+2

@ Md.KhairulHasan 질문입니다. 사실이 질문에 직접 연결된 것과 똑같습니다. :) – DAXaholic

답변

4

Git이 지향 비순환 그래프를 사용하고 대개 repo에만 하나의 루트 만 있으면 모든 분기가 초기 커밋 중 하나를 가리 킵니다. 실제로 원하는 것은 의 가장 큰 부분 인을 지점과 공유하는 지점입니다.

HEAD가 현재 분기 기록에 포함되어있는 지점을 찾을 수 없습니다.이 지점은 HEAD가 그 이후로 이동했을 가능성이 큽니다.

그래서 난 당신이 두 가지의 새로운 공통 조상 (일명 포크 점)를 찾거나 커밋 git merge-base를 사용하는 것이 좋습니다 :

$ git merge-base feature develop 
12345abc 
$ git merge-base feature release 
98765fed 

이 출력됩니다 두 가지의 역사에서 나타나는 두 커밋, 각기. 둘 중 하나는 모두 지점에 포함됩니다, 그래서 당신은 (하지 않는 사람에게, 또는 오히려 당신을) 당신이 원하는 커밋 얻기 위해 다시 merge-base에게 공급할 수 : 그래서

git merge-base 12345abc 98765fed 
98765fed 

이 예에서 featuredevelop에서 파생되었으므로 두 사람은 release에없는 커밋을 공유합니다.

이 기능은 기능 간 교차 병합을 수행하지 않는 경우에만 작동합니다.

관련 문제