programing

Git 커밋 범위에서 이중 점 ".."와 삼중 점 "..."의 차이점은 무엇입니까?

css3 2023. 4. 15. 09:09

Git 커밋 범위에서 이중 점 ".."와 삼중 점 "..."의 차이점은 무엇입니까?

의 도트로 입니다... 또 에서는 점 세 합니다.....

그 둘의 차이점은 무엇입니까?

Git 로그와 함께 커밋 범위 사용

.. ★★★★★★★★★★★★★★★★★」...git logB의 A와 지점 B의 차이입니다

git log A..B

A에는 없는 B의 커밋을 모두 표시합니다.

git log A...B

는, A가 가지는 커밋과 B가 가지지 않는 커밋을 모두 표시합니다.또한 A와 B가 가지지 않는 커밋을 모두 필터링 해, 양쪽공유하지 않는 커밋만을 표시합니다.

벤 다이어그램과 커밋 트리를 사용한 시각화

'보다 낫다'의 입니다.git log A..B브랜치 B에 포함된 A에 존재하지 않는 커밋은 커밋 범위에 의해 반환되며 Venn 다이어그램에서는 빨간색으로 강조 표시되고 커밋 트리에서는 파란색 동그라미로 표시됩니다.

 "git log A..트리 1

이 있다, 이런 그림들이에요.git log A...B. 양쪽 브런치가 공유하는 커밋은 다음 명령어로 반환되지 않습니다.

 "git log A...트리 2

범위 만들기... 유용한 기능 ★★★★★

범위 「」를 할 수 ....에서는 log " " " " " " " " " " " " " 를 하여 보다 합니다.--left-right어떤 커밋이 어떤 브랜치에 속하는지 표시하는 옵션:

$ git log --oneline --decorate --left-right --graph master...origin/master
< 1794bee (HEAD, master) Derp some more
> 6e6ce69 (origin/master, origin/HEAD) Add hello.txt

'커밋'이 ''에 속합니다.master앞에 가 붙는다.<, 「」에 속하는 커밋은origin/master앞에 가 붙는다.>.

Git Diff에서의 커밋 범위 사용

가 어떻게 하겠습니다.git diff하지만 지금은 Git diff commit range에서 더블닷 ".."과 트리플닷 "..."의 차이점을 확인하시기 바랍니다.

참고 항목

다르죠?log 명령어diff명령어를 입력합니다.서서 log있어요.man git-rev-parse★★★★

커밋에서 도달 가능한 커밋을 제외하려면 프리픽스^ 표기가 사용됩니다.예: ^r1 r2는 r2에서 도달 가능한 커밋을 의미하지만 r1에서 도달 가능한 커밋은 제외합니다.

이 set 조작은 너무 자주 나타나므로 생략할 수 있습니다.2개의 커밋 r1과 r2(위의 SPECIFICATING REVIES에서 설명한 구문에 따라 이름이 지정됨)가 있는 경우 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-diffgit diff A BA자 B자 B자 B자 B자 B자 B자 B자 B자 B자 B자 B자 B자 B자 B자 B자 B자 B자 B자 B자 A서서 logB에는 있지만 A에는 없는 모든 커밋이 표시됩니다.

세 개의 점을 큰 은 '두 개의 점'과 '세 개의 점'을 함께 할 때 '두 개의 점'과 '세 개의 점'이 혼동되기 합니다.git diff와 함께 사용하는 것과는 반대입니다.git log.

자세한 내용은 기타 답변, 실제 문서 또는 다수의 블로그 투고를 참조해 주십시오.다만, 다음과 같은 간단한 문장은 올바른 생각을 전달하는 데 도움이 됩니다.

git log  A..B   # Show me commits only on B.
git log  A...B  # Show me commits only on A or only on B.
git diff A..B   # Show me changes only on A or only on B.
git diff A...B  # Show me changes only on B.

약간 혼란스러워 = 이 흐름의 실제 방법은 다음과 같습니다.

      A---B---C topic
     /
D---E---F---G master

https://github.com/alexcpn/gitdiffs/pull/2/commits https://github.com/alexcpn/gitdiffs/pull/1/commits

Git 로그 동작

1 > -- -- topic > git log -- git log -- 그그그그그그그그 -- 그 >메인
*9411a8b (HEAD -> 인)) G
F* 3a567a F
* aad429f (토픽) C
* 6b1eb5a B
* d65c129 A
표시
D
E
A
B
C

D
E
F
G
본론에서는 본론에서는 않습니다.
2 -- -- main ...syslog --syslog --syslog --syslog --syslog --syslog
*9411a8b (HEAD -> 인)) G
F* 3a567a F
* aad429f (토픽) C
* 6b1eb5a B
* d65c129 A
주제
D
E
A
B
C
주된
D
E
F
G
위와 같다
3 git log --online --그래프 토픽..주된
* 9411a8b (HEAD -> 메인) G
* 3a567aa F
주제
D
E
A
B
C
주된
D
E
F
G
대체로, 하지만 주제는 아니다.
4 git log --online --그래프 메인..주제
* aad429f(토픽) C
* 6b1eb5a B
* d65c129 A
표시
D
E
A
B
C

D
E
F
G
주제는 있지만, 주요 내용은 아니다.

Git Diff 동작

1
D
E
- .

-
+F
+G
표시
D
E
A
B
C

D
E
F
G
내용
in compared (메인 이외)
로 삼다
2 git diff 인.... 표시
D
E
-
-
+A
+B

+C
표시
D
E
A
B
C

D
E
F
G

입니까?
3 maindiff diff... maintopic git git
D
E(E)
+A
+B
+C
표시
D
E
A
B
C

D
E
F
G
주제에는 있지만, 주안점은 아니다.
4 토픽 diff...메인
D
E
+F
+G
표시
D
E
A
B
C

D
E
F
G
대체로 그렇지만 토픽에는 없다.

'...' 구문은 "두 분기 간의 차이, 공통 상위 항목부터 시작"의 줄임말입니다.공식 Git북에서 :

git diff master...contrib

는 다음과 같습니다.

$ git merge-base contrib master
36c7dba2c95e6bbb78dfa822519ecfec6e1ca649
$ git diff 36c7db

언급URL : https://stackoverflow.com/questions/462974/what-are-the-differences-between-double-dot-and-triple-dot-in-git-com