나는 여러 저자가 저지른 일련의 커밋을 가지고 있으며 두 개의 커밋 사이에 git dff
출력을보고 싶지만 작성자 중 하나만 커밋을 고려하고 싶다면 --author with git 로그.작성자 필터가있는 자식 diff가
나는 최종 요약 diff에 관심이 있고 개별 커밋의 diffs에는 관심이 없다.
거기에 쓸모있는 트릭이 있습니까?
나는 여러 저자가 저지른 일련의 커밋을 가지고 있으며 두 개의 커밋 사이에 git dff
출력을보고 싶지만 작성자 중 하나만 커밋을 고려하고 싶다면 --author with git 로그.작성자 필터가있는 자식 diff가
나는 최종 요약 diff에 관심이 있고 개별 커밋의 diffs에는 관심이 없다.
거기에 쓸모있는 트릭이 있습니까?
여기에서의 문제는 일반적으로이 작업을 수행 할 수 없다는 것입니다. Alice가 특정 파일을 변경 한 다음 Bob이 Alice가 변경 한 부분을 포함하여 변경 한 다음 Alice가 다시 변경합니다. 어떻게 Alice의 두 diff를 하나의 diff로 결합합니까? 두 개의 패치로 가져 가면 두 번째 패치는 Bob의 패치가 먼저 적용되지 않으면 적용되지 않습니다! 그러나 Bob의 변경 사항을 포함하기 때문에 원래 상태와 최종 상태를 단순히 비교할 수도 없습니다.
git 작업의 예제를 선호하는 경우 대화 형 리베이스를 수행하고 임의의 커밋을 삭제하는 것과 같습니다. 물론, 때로는 작동하지만 때로는 완전히 실패 할 것입니다. 왜냐하면 그 커밋 중 하나가 당신이 꺼낸 것 중 하나에 의존하기 때문입니다.
그래서, 난 당신이 개인이 차이점을 커밋하지 않으려 고 말했다 알고,하지만 당신이 정말로 희망 할 수있는 모든입니다 :
git log -p --author=Alice
단일 DIFF 정말 절망적 인 경우 또는이 얻을 것이다 그것은 당신을 위해,하지만 제가 위에서 언급 한 것처럼 어떤 패치 상호 작용 거기에없는 경우 :
git checkout -b temp first_commit
git log --pretty=%H --author=Alice first_commit..second_commit |
while read commit; do
git cherry-pick $commit || exit
done
# or if you have a new version of git, cherry-pick works with multiple arguments:
# git cherry-pick $(git log --pretty=%H --author=Alice first_commit..second_commit)
git diff first_commit temp
하는 패치는 한 번 적용됩니다 절대적으로 보장이 없기 때문에 이건 정말, 작업 트리에서 작업을 필요로 않습니다 커밋을 건너 뛰었습니다. 너는 그냥보아야한다.
당신은 format:<string>
형식은 당신이 표시하려는 정보를 지정할 수 있습니다 diff-tree
format:<string>
의 서식 기능을 사용할 수있을 수 있습니다.
printf
형식과 약간 비슷하게 작동하며,\n
대신%n
이라는 줄 바꿈을 받는다는 예외적 인 예외가 있습니다.예컨대,
format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"
이 같은 것을 보여줄 것입니다 :
The author of fe6e0ee was Junio C Hamano, 23 hours ago
The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<
당신은 다음 관련 저자에 grep을 할 수 있습니다.
정확히 중복되지는 않지만 여기 [코드 검토를위한 관련 변경 사항 추출] (http://stackoverflow.com/questions/78339/extract-relevant-changes-for-code-review)에서 유용한 정보를 찾을 수 있습니다.) –