서로 다른 경로에 존재하는 파일의 두 버전을 다른 git 커밋에서 비교하려고합니다. 나는 diff를 원하지 않는다, 나는 단순히 내용과 모드가 같은지 알고 싶다. diff-files에 대한 문서는 반환 값의 의미를 나타내지 않습니다. 나는 git에서 cmp (1)과 비슷한 것을 보지 못했다. 이 작업을 수행 할 다른 배관 도구가 있습니까? 아니면 diff 파일에이 값을 나타내는 반환 값이 있습니까?어떻게하면 git에서 두 개의 리비전에서 파일을 프로그래밍 방식으로 비교합니까?
0
A
답변
0
git ls-tree <commit> -- <path>
출력
아래로
<mode> SP <type> SP <object> TAB <file>
<mode>
이 파일 모드입니다. <object>
은 내용을 나타내는 sha1입니다.
모드와 개체를 비교하십시오.
여기<object>
다른 방법으로 이름을 지정할 수 있습니다
<commit>:<path>
그래서
git rev-parse <commit>:<path>
출력 할 수 블롭 또는 트리의 SHA1. 두 sha1을 비교해 보면 내용이 같은지 아닌지 확인할 수 있습니다.
3
git diff --exit-code <commit> <commit>
나는 당신을 찾고 있습니다. 그것의 거의 문서의 하단 https://git-scm.com/docs/git-diff
또는
git diff --quiet <commit> <commit>
종료 코드 및 아무것도 더 (NO 콘솔 출력)에 순수하게 관심을하면
파일이 동일한 경우 동일한 blob이어야한다고 가정합니다. BLOB 해시에 모드가 포함되어 있습니까? –