programing

Git에서 병합 커밋의 부모를 얻으려면 어떻게 해야 합니까?

css3 2023. 9. 7. 21:57

Git에서 병합 커밋의 부모를 얻으려면 어떻게 해야 합니까?

일부 Git 명령어는 상위 명령어를 수정 버전으로 사용하고, 다른 명령어는 다음과 같습니다.git revert)를 부모 번호로 지정합니다.두 경우 모두 어떻게 부모님을 모실 수 있습니까?

두 번째 부모를 찾기 위해 긴 트리를 스크롤해야 하는 경우가 많기 때문에 그래픽 로그 명령을 사용하고 싶지 않습니다.

간단하죠.git log <hash>calling for merge commit는 부모의 축약 해시를 보여줍니다.

 $ git log -1 395f65d
 commit 395f65d438b13fb1fded88a330dc06c3b0951046
 Merge: 9901923 d28790d
 ...

git는 숫자에 따라 부모를 출력합니다. 첫 번째(가장 왼쪽) 해시는 첫 번째 부모에 대한 해시 등입니다.

해시만 원하는 경우 두 가지 동등한 선택 사항은 다음과 같습니다.

$ git log --pretty=%P -n 1 <commit>
$ git show -s --pretty=%P <commit>

git rev-list는 부모 해시를 보여줄 수도 있지만 커밋에 대한 해시를 먼저 나열합니다.

$ git rev-list --parents -n 1 <commit>

부모를 검사하고 싶다면 캐럿과 함께 직접 언급하면 됩니다.<commit>^1그리고.<commit>^2, 예:

git show <commit>^1

일반화됩니다. 문어 병합의 경우 부모를 다음과th 같이 참조할 수 있습니다.<commit>^n. 당신은 모든 부모들을 참조할 수 있습니다.<commit>^@, 단 한 번의 커밋이 필요할 때는 이것이 작동하지 않습니다.n개의th 상위 구문 뒤에 접미사가 추가로 나타날 수 있습니다(예:<commit>^2^,<commit>^2^@), 그러나 다음을 수행할 수 없습니다.^@(<commit>^@^유효하지 않습니다).이 구문에 대한 자세한 내용은 man 페이지를 읽어 보십시오.

다음은 제가 발견한 가장 간단한 방법입니다.

git show --pretty=raw 3706454

언급URL : https://stackoverflow.com/questions/9059335/how-can-i-get-the-parents-of-a-merge-commit-in-git