https://www.kernel.org/pub/software/scm/git/docs/git-diff.html : 그래서
git diff [--options] <commit> <commit> [--] [<path>…]
This is to view the changes between two arbitrary <commit>.
...
<path>…
The <paths> parameters, when given, are used to limit the diff to the named
paths (you can give directory names and get diff for all files under them).
:
git diff deadbeef cafebabe -- pom.xml src/main/resources src/test/resources
날 SRC에서 내 pom.xml 파일에 대한 두 (약칭 함) 커밋 해시의 차이점 및 모든 파일을 볼 수있게된다/주/리소스 및 src/test/resources.
[이 개정판에있는 전체 파일/디렉토리를 비교한다는 점에 유의하십시오. 이 아닌 경우은이 두 가지 커밋에 의해 도입 된 특정 변경 사항을 단순히 비교합니다. ]]
-
영업 이익은 묻는다 : 물론
Can't you skip the -- ? That's what I did and didn't notice problems.
. --
옵션은 명령에서 가능한 모호성을 제거하는 것입니다. 명령이 모호성을 해결할 정도로 똑똑한 경우 (보통 git 명령과 마찬가지로) '-'는 생략 할 수 있습니다 (맨 페이지의 --
주위의 대괄호로 표시).
가능한 모호성은 무엇입니까? 정상적인 파일 이름과 지점/태그 이름을 사용하면이 파일은 드문 경우지만 가능합니다.
(1) git diff [--options] [<commit>] [--] [<path>…]
This form is to view the changes you have in your working tree
relative to the named <commit>. ...
(2) git diff [--options] <commit> <commit> [--] [<path>…]
This is to view the changes between two arbitrary <commit>.
하는의 내가 현재 디렉토리에 '갑'라는 파일이 있다고 가정 해 봅시다 : 예를 들어, 사람이 페이지가 모두 유효한 자식은 diff 명령이 있습니다 말했다 있습니다. 나는 또한 'foo'라는 태그를 가지고있다. (이것은 'foo'라는 파일을 추가 한 커밋이다.)
git diff deadbeef foo
이 명령의 기능은 무엇입니까? (1) 파일 foo
과 수정본 deadbeef
을 파일 foo
과 현재 작업 디렉토리에 비교 했습니까? (2) 또는 deadbeef
의 전체 소스 트리를 foo
태그의 전체 소스 트리와 비교합니까?
나는 그것이 (2) 할 것이라고 믿는다.그래서 경우에 정말 해석 (1), 내가 사용할 수 있습니다 원하는 :
git diff deadbeef -- foo
- 자식에 대한 좋은
한 가지 명령이 구조에 상당히 일치한다. 대부분의 명령은 사용
git <command> [--options] <commit reference(s), if needed?> [--] [<path> ...]
git diff HEAD^ -- README
git log HEAD^ -- README
git checkout HEAD^ -- README
git reset HEAD -- foo
이 아마도 당신이 매우 자주
git diff
에 대한 모호성으로 실행되지 않습니다 당신이 그것으로 실행 않은 경우, 그 어떤 쉽게 고쳐 다시 사용하여 명령을 실행하는 데 '-'. 그러나 때로는 명령이 잠재적으로 파괴적 일 경우 (예 :
checkout
,
reset
) 모호성을 방지하기 위해 이중 대시를 사용하거나 (실제로는 모호성을 해결하기 위해) 유용합니다.
잘 알려진 커밋 (좋은 상태에 있다는 것을 알 수있는 시간/날짜에 해당하는 커밋)과 diff가있는 경우 (1) 파일을보고 2) 커밋하면 . – AD7six
이것은 [git] 태그가 있기 때문에, 'git rev-parse commit1 : path/to/file''commit2 : path/to/maybe/another/file'입니다. 출력 선이 같지 않으면 파일이 다릅니다. – jthill
@ AD7six : 그것은 논리적으로 들립니다. 어떻게 구문이 어떻게 생겼는지 궁금하네요. – Skuli