Gitdiff 커밋 범위에서 이중 점 ""과 삼중 점 "..."의 차이점은 무엇입니까?
다음 명령의 차이점은 무엇입니까?
git diff foo master # a
git diff foo..master # b
git diff foo...master # c
분기 비교
$ git diff topic master <1> $ git diff topic..master <2> $ git diff topic...master <3>
- 주제의 추가 정보와 마스터 분기 간의 변경 사항입니다.
- 위와 같습니다.
- 주제 분기가 시작된 이후 마스터 분기에서 발생한 변경사항입니다.
하지만 완전히 이해가 가지 않습니다
이미 이러한 이미지를 만들었기 때문에 다른 답변에 사용할 가치가 있다고 생각했습니다. 비록 차이에 대한 설명은 있지만...
및 (점) 및...
(점-점-점)은 manojlds의 답변과 본질적으로 동일합니다.
git diff
일반적으로 syslog는 커밋 그래프에서 정확히 두 점 사이의 트리 상태 간의 차이만 보여줍니다. 그..
그리고....
의표기의 git diff
다음과 같은 뜻이 있습니다.
# Left side in the illustration below:
git diff foo..bar
git diff foo bar # same thing as above
# Right side in the illustration below:
git diff foo...bar
git diff $(git merge-base foo bar) bar # same thing as above
다른말하면로,하면,git diff foo..bar
▁the같▁▁is▁와 정확히 같습니다.git diff foo bar
다 두 가지 입니다.foo
그리고.bar
에반면은,git diff foo...bar
과 "기저분"의 끝 .bar
에 이 는 병합기일로두마공커통지된로이다작니에서 작업한 변경 .bar
를 도입했지만, 지금까지 수행된 모든 작업은 무시했습니다.foo
그 사이에
당신이 알아야 할 것은 그것뿐입니다...
그리고....
의표기의 git diff
하지만...
여기서 흔히 볼 수 있는 혼란의 원인은..
그리고....
다음과 같은 명령에 사용될 때 미묘하게 다른 것들을 의미합니다.git log
커밋 집합을 하나 이상의 인수로 예상합니다.(이러한 명령은 모두 인수에서 커밋 목록을 구문 분석하는 데 사용됩니다.)
의 ..
그리고....
위해서git log
다음과 같이 그래픽으로 표시할 수 있습니다.
그렇게,git rev-list foo..bar
줍니다.bar
에 있지 않습니다.foo
에반면은,git rev-list foo...bar
▁either▁that에 커밋이 있습니다.foo
또는 bar
하지만 둘 다는 아닙니다.세 번째 다이어그램은 두 분기를 나열하면 두 분기 중 하나 또는 둘 모두에 있는 커밋을 얻을 수 있음을 보여줍니다.
어쨌든, 저는 모든 것이 약간 혼란스럽다는 것을 발견했고, 커밋 그래프 다이어그램이 도움이 된다고 생각합니다:)
◦ 예를 들어 병합 충돌을 해결할 때부터 "일반적으로"라고만 말합니다.git diff
3방향 병합을 보여줍니다.
통합 버전의..
대...
diff vs log로
git diff foo master
의 팁(헤드) 커밋 간 차이foo
그리고.master
.
git diff foo..master
같은 일을 하는 또 다른 방법.
git diff foo...master
공통 조상과의 차이(git merge-base foo master
의foo
그리고.master
의 끝까지master
다시 말해서, 그것은 단지 변화를 보여줍니다.master
분기는 와의 공통 조상 이후로 도입되었습니다.foo
.
학습 내용.GitHub "합병으로 인한 결과" 예제(아카이브)는 두 가지를 사용하는 시기를 설명합니다.
예를 들어, 'dev' 분기를 만들고 파일에 함수를 추가한 다음 'master' 분기로 돌아가서 README에서 줄을 제거한 다음 다음과 같은 작업을 실행합니다.
$ git diff master dev
첫 번째 파일에서 함수가 추가되고 README에 줄이 추가되었음을 알려줍니다.왜냐고요? 왜냐하면 README는 분기에 여전히 원래 줄이 있지만 '마스터'에서는 제거했기 때문입니다. 따라서 스냅샷을 직접 비교하면 'dev'가 추가한 것 같습니다.
당신이 정말로 비교하고 싶은 것은 당신의 분기가 갈라진 이후 'dev'가 무엇을 변화시켰는가 하는 것입니다.이를 위해 Git은 멋진 속기를 가지고 있습니다.
$ git diff master...dev
git diff foo master
의 차이점을 보여줍니다.foo
그리고.master
그 시점에서 분기.
git diff foo..master
또한 두 시스템 간의 차이점을 보여줍니다.foo
그리고.master
해당 시점의 분기(위와 동일).
git diff foo...master
이와 같은 가 모두 됩니다.foo
가지는 로부터 만들어졌습니다.master
지점과 그 이후
따라서 처음 두 명령은 동일하고 마지막 명령은 diff 이력에 대한 더 넓은 시야를 보여줍니다.
맨 위 그림은 맨 아래 그래프 트리와 동일합니다.
A0 <- A1 <- A2 <- A3 (master)
\
C0 <- C1 (test)
사진 한 장이 천 마디의 가치가 있다, 그 차이는..
...
^
아래에 나와 있습니다.
$ git log master..test
# output C0 C1
$ git log ^master test
# output C0 C1
$ git log master…test
# output A1 A2 A3 C0 C1
언급URL : https://stackoverflow.com/questions/7251477/what-are-the-differences-between-double-dot-and-triple-dot-in-git-dif
'programing' 카테고리의 다른 글
.contiguous()는 PyTorch에서 무엇을 합니까? (0) | 2023.06.15 |
---|---|
ASP.NET Web API - Startup.cs 이 존재하지 않습니다. (0) | 2023.06.10 |
Excel VBA SVN 클라이언트/통합 (0) | 2023.06.10 |
CTE에 정의된 값 목록 작성 (0) | 2023.06.10 |
*ngIf 값이 배열에 존재하는 경우 (0) | 2023.06.10 |