이미이 이미지를 만들었으므로 ..
(dot-dot)와 ...
(dot-dot-dot) 의 차이점에 대한 설명 은 본질적으로 manojlds의 답변 과 동일 하지만 다른 대답으로 사용할 가치가 있다고 생각했습니다 .
git diff
일반적으로이 명령 ¹은 커밋 그래프에서 정확히 두 점 사이의 트리 상태 차이 만 표시합니다. ..
과 ...
의 표기 git diff
의 의미는 다음과 같습니다 :
다시 말해, git diff foo..bar
정확히 동일합니다 git diff foo bar
. 모두 당신에게 두 가지의 팁 사이의 차이가 표시됩니다 foo
및 bar
. 반면 git diff foo...bar
에, 두 가지의 "병합 기반"과의 팁 간의 차이점을 보여줍니다 bar
. "병합 기반"은 일반적으로 두 가지 분기 사이에 공통으로 적용되는 마지막 커밋이므로이 명령은 작업 bar
중에 발생한 모든 변경 사항을 표시 하면서 그 동안 수행 된 모든 내용은 무시 foo
합니다.
의 ..
및 ...
표기법에 대해 알아야 할 모든 것 입니다 git diff
. 하나...
... 혼란의 일반적인 소스는 여기에 있다는 것입니다 ..
과 ...
같은 명령을 사용할 때 미묘하게 다른 것을 의미 git log
것으로 예상 하나 개 이상의 인수로 커밋의 세트를. (이러한 명령은 모두 git rev-list
인수에서 커밋 목록을 구문 분석하는 데 사용 됩니다.)
의 의미 ..
와 ...
위해는 git log
다음과 같이 그래픽으로 표시 할 수 있습니다 :
따라서 git rev-list foo..bar
branch bar
에없는 분기의 모든 것을 보여줍니다 foo
. 한편, git rev-list foo...bar
쇼 당신의 하나있는 모든 커밋 foo
또는 bar
, 그러나 둘을 . 세 번째 다이어그램은 두 가지를 나열하면 두 가지 중 하나 또는 모두에있는 커밋을 얻는다는 것을 보여줍니다.
글쎄, 어쨌든 약간 혼란스럽고 커밋 그래프 다이어그램이 도움이된다고 생각합니다. :)
¹ 예를 들어 병합 충돌을 해결할 때 git diff
3 방향 병합이 표시 되므로 "일반적으로"만 말합니다 .
..
와...
에git diff
그들의 다른 의미에서git log
.