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>