Git: 두 분기의 가장 최근 공통 조상 찾기
두 Git 가지의 가장 최근 공통 조상을 찾는 방법은 무엇입니까?
찾고 있습니다. 용도:
$ 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
그러나...더 쉽게 입력하고 기억할 수 있습니다.
데이브가 언급했듯이, 특별한 경우는HEAD생략할 수 있습니다.그래서:
git diff master...HEAD
다음과 같습니다.
git diff master...
현재 분기가 다음과 같은 경우 충분합니다.feature.
마지막으로, 순서가 중요하다는 것을 기억하세요!하고있다git diff feature...master설정된 변경 내용을 표시합니다.master에 없는feature.
저는 더 많은 git 명령어가 그 구문을 지원하기를 바라지만, 그렇지 않다고 생각합니다.그리고 어떤 것들은 심지어 다른 의미를 가지고 있습니다....Git commit 범위에서 이중 점 ""과 삼중 점 "..."의 차이점은 무엇입니까?
이전 답변에서 언급한 바와 같이, 그러나.git merge-base작동하다,
$ git merge-base myfeature develop
050dc022f3a65bdc78d97e2b1ac9b595a924c3f2
한다면myfeature는 현재 분기이며, 일반적으로 다음을 사용할 수 있습니다.
$ git merge-base --fork-point develop
050dc022f3a65bdc78d97e2b1ac9b595a924c3f2
이 인수는 충분히 최근 버전의 git에서만 작동합니다.불행하게도 그것이 항상 효과가 있는 것은 아니며, 그 이유는 분명하지 않습니다.이 답변의 끝 부분에 명시된 제한 사항을 참고하시기 바랍니다.
전체 커밋 정보는 다음을 고려하십시오.
$ git log -1 $(git merge-base --fork-point develop)
와 함께gitk두 분기를 그래픽으로 볼 수 있습니다.
gitk branch1 branch2
그리고 두 갈래의 역사에서 공통 조상을 찾는 것은 쉽습니다.
모든 분기의 공통 조상 찾기
git merge-base $(git branch --format "%(refname)")
git checkout myRep
git pull origin main --allow-unrelated-histories
git push origin myRep
언급URL : https://stackoverflow.com/questions/1549146/git-find-the-most-recent-common-ancestor-of-two-branches
'programing' 카테고리의 다른 글
| R의 Openxlsx 패키지를 사용하여 Excel Workbook의 기존 시트를 수정하려면 어떻게 해야 합니까? (0) | 2023.05.09 |
|---|---|
| DataGrid 텍스트 열에 스타일을 지정할 수 없는 이유는 무엇입니까? (0) | 2023.05.09 |
| 이유: 적합한 이미지를 찾을 수 없습니다. (0) | 2023.05.09 |
| 현대 C++11 / C++14 / C++17 및 미래 C++20의 문자열에 열거 (0) | 2023.05.09 |
| 새 문서를 삽입할 수 있는 경우 업데이트하는 방법은 무엇입니까? (0) | 2023.05.09 |