두 개의 파일 A와 B를 하나의 열로 표시하는 기존의 통합 diff 형식과 는 달리 -(빼기는 A에 나타나지만 B에서 제거됨), + (A에서 누락되었지만 B에 추가됨), ”(공간 – 변경되지 않은) 접두사, 이 형식은 두 개 이상의 파일 파일을 비교합니다1 , file2,… 하나의 파일 X로 X가 각 fileN과 어떻게 다른지 보여줍니다. 각 fileN에 대한 하나의 열이 출력 줄에 준비되어 X의 줄이 어떻게 다른지 기록합니다. 변경된 파일의 이름과 상태만 표시합니다. 상태 문자의 의미에 대한 –diff 필터 옵션의 설명을 참조하십시오. 예를 들어 –단어-diff-정규식=. 각 문자를 단어로 취급하고, 그에 따라 문자에 따라 차이를 표시합니다. 예 1: 위치 /home/sahil/git/my_first_repo에서 git 리포지토리를 계속 사용하는 파일의 마지막 커밋과 현재 버전 간의 차이를 볼 수 있으며, 이제 이 리포지토리의 파일 test.txt에 줄을 추가했습니다. git 소스를 복제하는 경우 contrib라는 하위 디렉토리를 찾을 수 있습니다.

그것은 git 관련 도구및 기타 흥미로운 비트와 아직 git 코어로 승격되지 않은 조각의 무리가 포함되어 있습니다. 이 중 하나는 diff-highlight라는 펄 스크립트입니다. Diff-highlight는 일치하는 diff 출력 라인을 페어링하고 변경된 하위 단어 조각을 강조 표시합니다. 나머지 diff 출력은 diff `청크`의 목록입니다. diff는 변경사항이 있는 파일의 섹션만 표시합니다. 현재 예제에서는 간단한 시나리오로 작업할 때 청크가 하나만 있습니다. 청크에는 고유한 세분화된 출력 의미 체계가 있습니다. 파일을 스테이징 영역에 추가한 후 시스템에서 벗어나 변경한 내용을 잊어버리면 어떻게 해야 할까요? git diff 명령을 사용하여 차이점을 확인해야 합니다.

그러나 git diff를 실행하면 출력이 표시되지 않습니다. 파일 경로 없이 git diff를 호출하면 전체 리포지토리의 변경 내용을 비교할 수 있습니다. 위의 파일 특정 예제는 ./path/to/file 인수 없이 호출할 수 있으며 로컬 리포지토리의 모든 파일에 대해 동일한 출력 결과를 가질 수 있습니다. Git에는 diff를 수행하기 전에 이진 파일의 내용을 텍스트로 변환하는 셸 명령을 지정할 수 있는 기능이 있습니다. 그것은 비록 약간의 설정이 필요합니다.

git diff 예제