Git : 두 가지의 가장 최근 공통 조상 찾기
두 Git 브랜치의 가장 최근 공통 조상을 찾는 방법은 무엇입니까?
을 찾고 있습니다 git merge-base
. 용법:
$ git merge-base branch2 branch3
050dc022f3a65bdc78d97e2b1ac9b595a924c3f2
git diff master...feature
현재 (아마도 다중 커밋) 기능 브랜치의 모든 새 커밋을 보여줍니다.
man git-diff
다음과 같은 문서 :
git diff A...B
와 같다:
git diff $(git merge-base A B) B
그러나 ...
입력하고 기억하기가 더 쉽습니다.
Dave가 언급했듯이 의 특별한 경우는 HEAD
생략 할 수 있습니다. 그래서:
git diff master...HEAD
와 같다:
git diff master...
현재 분기가 feature
.
마지막으로 순서가 중요하다는 것을 기억하십시오! 이렇게 git diff feature...master
에있는 변경 표시됩니다 master
켜지지을 feature
.
더 많은 git 명령이 해당 구문을 지원하기를 원하지만 지원한다고 생각하지 않습니다. 그리고 일부는 심지어 다른 의미를 가지고 ...
: 망할 놈의 "..." ".."트리플 점 두 점 사이의 차이는 범위는 무엇 커밋인가?
이전 답변에서 언급했듯이 git merge-base
작동합니다.
$ git merge-base myfeature develop
050dc022f3a65bdc78d97e2b1ac9b595a924c3f2
그러나 myfeature
일반적으로 현재 분기 인 경우 다음을 사용할 수 있습니다 --fork-point
.
$ git merge-base --fork-point develop
050dc022f3a65bdc78d97e2b1ac9b595a924c3f2
이 인수는 충분히 최신 버전의 git에서만 작동합니다. 그러나 불행히도 항상 작동하는 것은 아니며 이유가 명확하지 않습니다. 이 답변 의 끝 부분에 명시된 제한 사항을 참조하십시오 .
전체 커밋 정보를 보려면 다음을 고려하세요.
$ git log -1 $(git merge-base --fork-point develop)
함께 gitk
사용하면 그래픽으로 두 가지를 볼 수 있습니다
gitk branch1 branch2
그러면 두 가지의 역사에서 공통 조상을 쉽게 찾을 수 있습니다.
참고 URL : https://stackoverflow.com/questions/1549146/git-find-the-most-recent-common-ancestor-of-two-branches
'development' 카테고리의 다른 글
CSS 불투명도는 텍스트가 아닌 배경색에만 적용 되나요? (0) | 2020.09.29 |
---|---|
jQuery / JavaScript : iframe 콘텐츠 액세스 (0) | 2020.09.29 |
Python에서 파일을 이동하는 방법 (0) | 2020.09.29 |
jQuery UI 대화 상자에서 닫기 버튼을 제거하는 방법은 무엇입니까? (0) | 2020.09.29 |
Docker 이미지와 컨테이너의 차이점은 무엇입니까? (0) | 2020.09.29 |