2016-07-21 1 views
0

서로 다른 경로에 존재하는 파일의 두 버전을 다른 git 커밋에서 비교하려고합니다. 나는 diff를 원하지 않는다, 나는 단순히 내용과 모드가 같은지 알고 싶다. diff-files에 대한 문서는 반환 값의 의미를 나타내지 않습니다. 나는 git에서 cmp (1)과 비슷한 것을 보지 못했다. 이 작업을 수행 할 다른 배관 도구가 있습니까? 아니면 diff 파일에이 값을 나타내는 반환 값이 있습니까?어떻게하면 git에서 두 개의 리비전에서 파일을 프로그래밍 방식으로 비교합니까?

+0

파일이 동일한 경우 동일한 blob이어야한다고 가정합니다. BLOB 해시에 모드가 포함되어 있습니까? –

답변

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 콘솔 출력)에 순수하게 관심을하면