코드에서 테스트를 실행할 때 항상 stash create를 사용하여 git 코드의 스냅 샷을 찍은 다음 테스트에 커밋 ID를 첨부합니다. 가비지 수집을 방지하기 위해 reflog에). 이 방법을 통해 나중에 어떤 코드가 해당 테스트 결과로 이어지는 지 쉽게 확인할 수 있습니다.두 개의 다른 상위 커밋을 사용하는 두 커밋 간의 차이점
하지만 종종 이전 코드를 현재 코드 버전과 비교하려고합니다. 문제는 현재 버전의 코드가 master 브랜치에 리베이스 되었기 때문에 git diff가 수백 가지 커밋의 차이점을 표시한다는 것입니다. 현재 내가하는 일은 두 개의 git show가 정상적인 (non-git) diff를 따르는 것입니다. 그러나 이것은 다른 행 번호를 가진 모든 행에 대해이 행 번호가 차이로 간주된다는 큰 단점이 있습니다.
두 번째 커밋을 리베이스 할 때 두 커밋간에 diff를 수행하는 쉬운 방법이 있습니까? 기본적으로, 내부적으로 첫 번째 커밋을 리베이스하는 것과 비슷한 것을 찾고 있습니다. diff를 보여주고 커밋의 내부 리베이스 버전을 제거합니다. 물론, rebase가 실패한다면, 그렇게 되겠지만, 대부분의 경우 rebase는 단지 나를 위해 일하기 때문에, 대부분의 경우 여전히 유용 할 것입니다.
이 글을 직접 작성해도 좋을지 모르지만 일반적인 문제 일 것 같아서 이미 이와 같은 것이 있는지 궁금합니다.
'git diff old ... current'는 당신이 원하는 것을 보여주지 않습니다 (2 점이 아니라 3 점이 있음을 나타냅니다.) – janos
아니요, 이전 버전의 부모 커밋 이후 현재 브랜치의 모든 변경 사항을 보여줍니다. (내 경우에는 old의 부모 위치 현재의 조상이다). 그래서 또한 수백 개의 다른 커밋을 보여줍니다. 그것은 실제로 두 개의 점과 다릅니다. 그러나 제 상황에서는'git diff old^.. current'와 같습니다. 이것은 내가 원하는 것도 아닙니다. – FrederikVds
https://stackoverflow.com/a/28114114/2303202 – max630