[git] git에서 병합 커밋의 부모를 얻는 방법은 무엇입니까?

일부 git 명령은 부모를 수정본으로 사용합니다. git revert부모 번호 와 같은 다른 항목 (예 🙂 두 경우 모두 부모를 얻는 방법. 그래픽 로그 명령을 사용하고 싶지 않기 때문에 종종 두 번째 부모를 찾기 위해 긴 트리를 아래로 스크롤해야합니다.



답변

git log <hash>병합 커밋에 대한 간단한 호출은 부모의 약식 해시를 보여줍니다.

 $ 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

이것은 일반화합니다. 문어 병합의 경우 n 번째 부모를로 참조 할 수 있습니다 <commit>^n. <commit>^@단일 커밋이 필요한 경우에는 작동하지 않지만 모든 부모를 참조 할 수 있습니다 . 추가 접미어는 N 후에 게재 번째 상위 구문 (예를 들어 <commit>^2^, <commit>^2^@그들은 이후 수없는 반면,) ^@( <commit>^@^유효하지 않다). 이 구문에 대한 자세한 내용은 rev-parse매뉴얼 페이지를 참조하십시오.


답변

다음은 병합의 부모를 보는 가장 간단한 방법입니다.

git show --pretty=raw 3706454


답변