단일 개정의 자식 로그


181

커밋이 있습니다 c. 정확한 커밋 c + 메타 정보의 변경 세트를 얻고 싶습니다. git log -p c^..c그렇게하는 것보다 간단한 방법이 있습니까?

답변:



60

Michal Trybus의 답변은 단순성에 가장 적합합니다. 그러나 출력에서 ​​diff를 원하지 않으면 항상 다음과 같은 작업을 수행 할 수 있습니다.

git log -1 -U c

그러면 커밋 로그가 제공되며 자동화 목적으로 모든 git logging 옵션을 완전히 제어 할 수 있습니다. 귀하의 경우에는 변경 세트를 원한다고 말했습니다. 이를 달성하기위한 가장 사람이 읽을 수있는 방법은 다음과 같습니다.

git log --name-status --diff-filter="[A|C|D|M|R|T]" -1 -U c

또는 1.8.X보다 큰 git 버전을 사용하는 경우 다음과 같습니다.

git log --name-status --diff-filter="ACDMRT" -1 -U c

결과는 다음과 유사합니다.

commit {c}
Author: zedoo <zedoo@stackoverflow.com>
Date: Thu Aug 2 {time-stamp}

   {short description}
D    zedoo/foo.py
A    zedoo/bar.py

물론 적절한 이벤트를 필터링하고 여기에 잘 설명되어있는 전통적인 git-log 명령을 통해 원하는대로 반환 형식을 지정할 수 있습니다 .


14
당신이 diff를 원하지 않는다면,하세요 git show --name-only <sha1>!
dbn

16
diff를 원하지 않으면을 사용하십시오 git show -s <commit>.
moeffju

3
무엇을 -1합니까? 어디에 기록되어 있습니까?
alex

1
@alex git help log"Commit Limiting"섹션 의 출력을 참조하십시오 . 또는 git-scm.com/book/en/v2/…를 참조하십시오 -<number>. 출력 커밋 수를 제한합니다.
LarsH


0

커밋에 대한 설명으로 변경 사항을 필터링하는 데 사용할 수 있습니다.

git log --grep='part_of_description' -p

여기서 git log --grep='part_of_description''part_of_description'이 포함 된 커밋을 선택하고 -p각 커밋의 변경 세트를 표시하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.