최근 커밋에서 건드리지 않은 파일의 git diff HEAD~1 표시

최근 커밋에서 건드리지 않은 파일의 git diff HEAD~1 표시

Git에서는 이전 커밋과의 차이점을 확인하기 위해 다음을 실행합니다.

git diff HEAD~1

싱글과 관련된 커밋을 보려면 file다음을 실행합니다.

git log --oneline file

그러나 다음을 실행했는데 참조하려는 파일이 마지막 커밋에서 변경되지 않은 경우 Git에는 아무 것도 표시되지 않습니다.

git diff HEAD~1 file

HEAD가 가리키는 참조에서 해당 파일이 커밋되지 않은 경우 특정 파일과 유사한 방식으로 차이점을 어떻게 볼 수 있습니까 HEAD?

답변1

마지막 커밋과 그 이전 커밋 사이에 변경되지 않은 파일의 차이점을 보려면 명시적으로 SHA를 참조해야 합니다( HEAD~1).

로그를 실행하여 보려는 몇 가지 SHA를 확인하세요.

git log --oneline <file>

출력 예는 다음과 같습니다.

af46919 긁힌 - 대신 지역 피자 가게라고 함
b09206c 목록에 소스와 닥터페퍼 한 병을 추가했습니다
ad90f90 반죽을 반죽하고 밤새 방치

이제 파일에 대한 변경 사항의 차이점을 보려면 두 번째 SHA를 통해 이를 참조하면 됩니다. 이 경우 예제에서 다음을 확인할 수 있습니다.

git diff b09206c <file>

위의 내용은 약어입니다.

git diff b09206c HEAD <file>

아니면 다음과 같이 생각해보세요.

git diff <start-commit-SHA> <future-commit-SHA> <file>

하나의 명령(예: 스크립트용)으로 실행하려면 다음을 수행할 수 있습니다.

git log --oneline <file> |awk 'NR==2{print $1}'|xargs -I {} git diff {} <file> 

관련 정보