질문 : Git 커밋 범위에서 이중 점“..”과 삼중점“…”의 차이점은 무엇입니까?
일부 Git 명령은 커밋 범위를 사용하고 하나의 유효한 구문은 두 개의 점 ..
으로 두 개의 커밋 이름을 구분하는 것이고 다른 구문은 세 개의 점을 사용하는 ...
둘의 차이점은 무엇입니까?
답변
log
명령을 diff
명령을 사용하는지에 따라 다릅니다. log
경우 man git-rev-parse
문서에 있습니다.
커밋에서 도달 할 수있는 커밋을 제외하기 위해 접두사 ^ 표기가 사용됩니다. 예를 들어 ^ r1 r2는 r2에서 도달 할 수있는 커밋을 의미하지만 r1에서 도달 할 수있는 것은 제외합니다.
이 집합 연산은 너무 자주 나타나서 그것에 대한 속기가 있습니다. 두 개의 커밋 r1 및 r2 (위의 개정판 지정에 설명 된 구문에 따라 명명 됨)가있는 경우 "^ r1 r2"에 의해 r1에서 도달 할 수있는 것을 제외하고 r2에서 도달 할 수있는 커밋을 요청할 수 있으며 다음과 같이 작성할 수 있습니다. "r1..r2".
유사한 표기법 "r1 ... r2"는 r1과 r2의 대칭 적 차이라고하며 "r1 r2 --not $ (git merge-base --all r1 r2)"로 정의됩니다. r1 또는 r2 중 하나에서 도달 할 수 있지만 둘 다에서 도달 할 수없는 커밋 세트입니다.
이는 기본적으로 두 가지 중 하나에 있지만 둘 다에 있지 않은 모든 커밋을 얻을 수 있음을 의미합니다.
diff
경우 man git-diff
문서에 있습니다.
git diff [--options] <commit>...<commit> [--] [<path>...]
This form is to view the changes on the branch containing and up to
the second <commit>, starting at a common ancestor of both
<commit>. "git diff A...B" is equivalent to "git diff
$(git-merge-base A B) B". You can omit any one of <commit>, which
has the same effect as using HEAD instead.
약간 모호합니다. 기본적으로 다른 브랜치와 비교하여 해당 브랜치의 차이점 만 표시한다는 의미입니다. 첫 번째 커밋으로 마지막 공통 커밋을 찾은 다음 두 번째 커밋을 그것에 비교합니다. 이 브랜치의 변경 사항 만 인식하지 않고이 브랜치와 비교하여 해당 브랜치의 변경 사항을 쉽게 확인할 수있는 방법입니다.
..
좀 더 간단합니다. git-diff
git diff AB
와 동일하고 A와 B를 비교합니다. log
경우 B에 있지만 A에는없는 모든 커밋을 표시합니다.
출처 : https://stackoverflow.com/questions/462974/what-are-the-differences-between-double-dot-and-triple-dot-in-git-com
'개발관련 > Git' 카테고리의 다른 글
Git mergetool을 생성할 때 .orig 파일을 생성하지 않는 방법 (0) | 2021.11.18 |
---|---|
단계적 변경 사항 만 git에 숨길 수 있는 방법 (0) | 2021.11.18 |
Git을 사용하여 원격 저장소에 태그를 푸시하는 방법 (0) | 2021.11.17 |
git reset --hard HEAD ~ 1을 실행 취소 하는 방법 (0) | 2021.11.17 |
.gitignore 파일에 주석을 사용하는 방법 (0) | 2021.11.17 |