development

캐럿 (^) 문자는 무엇을 의미합니까?

big-blog 2020. 7. 26. 11:38
반응형

캐럿 (^) 문자는 무엇을 의미합니까?


git에서 삭제 된 파일을 복원하는 데 도움 이되는 질문에 대한 답변을 보았습니다 .

해결책은

git checkout <deleting_commit>^ -- <deleted_file_path>

캐럿 ( ^)은 무엇을합니까? 다른 곳에서 git에서 매우 유용한 일을하는 것을 보았습니다. 마법이다. 누군가 나를 위해 그것을 망치고 그것이 무엇을 말해줘?


HEAD^ 현재 분기 팁의 첫 번째 부모를 의미합니다.

자식 커밋은 둘 이상의 부모를 가질 수 있습니다. HEAD^의 줄임말이며 적절하게 HEAD^1주소를 지정할 수도 있습니다 HEAD^2.

뿐만 아니라 모든 커밋의 부모에게 갈 수 있습니다 HEAD. 예를 들어, master~2마스터 브랜치 팁의 조부모를 의미하며 모호한 경우 첫 번째 부모를 선호합니다. 이 지정자는 임의로 체인 할 수 있습니다 예를 들어 , topic~3^2. 관련된 대답을 참조하십시오 의 차이는 무엇 HEAD^HEAD~망할 놈을?

자세한 내용은의 "Revisions 지정" 섹션을 참조하십시오 git rev-parse --help.


"부모"를 의미합니다. 그래서 HEAD^수단 "현재 HEAD의 부모". HEAD^^"현재 HEAD의 부모의 부모"(즉, 현재 HEAD HEAD^^^의 부모의 부모 )를 의미 하고, "현재 HEAD의 부모의 부모의 부모"를 의미 하는 등의 방식으로 연결할 수도 있습니다 .


^때 (캐럿)도 사용될 수 범위 지정 .

커밋에서 도달 가능한 커밋을 제외하기 위해 접두사 ^ 표기법 이 사용됩니다. 예를 들어 ^ r1 r2는 r2에서 도달 가능한 커밋을 의미하지만 r1에서 도달 가능한 커밋은 제외합니다.

<rev>

에서 도달 할 수있는 커밋 (예 : 조상)을 포함합니다.

^ <rev>

에서 도달 할 수있는 커밋 (예 : 조상)을 제외합니다.


캐럿은 특정 커밋의 부모를 나타냅니다. HEAD^를 들어 현재 HEAD 커밋의 부모를 나타냅니다. (또한 HEAD^^조부모를 말합니다).


시각적 설명이 있습니다. 다음과 같은 역사가 있다고 가정하십시오.

                      master  
  ... <- B <- C <- D
             /
... <- E <- F
              feature

기능이 마스터로 병합되면 C두 개의 조상으로 작성되었습니다. 힘내는이 조상 번호를 할당합니다. 기본 조상 B에는 1이 할당되고 피처 조상 F에는 2가 할당됩니다.

따라서 C^1지칭 B하고 C^2지칭한다 F. C^의 별칭입니다 C^1.

당신은 항상 사용 <rev>^3합니다. 세 지점의 병합을 수행 한 경우


(^)는 명령의 상위 소스를 가져옵니다. 즉 HEAD ^는 HEAD의 상위를 가져옵니다.


캐럿은 커밋 오프셋 (부모)을 나타냅니다. 예를 들어, HEAD^"HEAD에서 한 번 커밋"을 HEAD^^^의미하고 "HEAD에서 세 번 커밋 "을 의미합니다.


그렉 베이컨 (Greg Bacon)은 훌륭한 연결 고리를 제공했지만 상당히 밀집되어 있습니다. Git 소개 문서 온라인에는 수정 및 범위 지정자가 도입되었습니다.

https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection

참고 URL : https://stackoverflow.com/questions/1955985/what-does-the-caret-character-mean

반응형