it-source

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

criticalcode 2023. 9. 13. 22:40
반응형

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

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

해결책은

git checkout <deleting_commit>^ -- <deleted_file_path>

캐럿 문자란 무엇입니까?^다른 곳에서 아주 유용한 일을 하는 걸 봤어요마법 같은 거죠.누가 나를 위해 그것을 망치고 나에게 그것이 무엇을 하는지 말해주세요?

HEAD^현재 가지 끝의 첫 번째 부모를 의미합니다.

git 커밋에는 둘 이상의 부모가 있을 수 있습니다.HEAD^의 줄임말.HEAD^1, 그리고 당신은 또한 주소를 말할 수 있습니다.HEAD^2적절한 경우 등을 고려해야 합니다.

부모님들께는 어떤 약속도 할 수 있고, 단지HEAD. 세대를 거슬러 올라갈 수도 있습니다. 예를 들어,master~2불확실한 경우 첫 번째 부모를 선호하는 마스터 브랜치 끝의 조부모를 의미합니다.이러한 지정자는 임의로 연결될 수 있습니다. 예를 들어,topic~3^2. Git와 Git의 차이점은 무엇입니까?에 대한 관련 답변 참조

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

'부모'라는 뜻이니까요HEAD^"현재 헤드의 부모"를 의미합니다. 이들을 함께 연결할 수도 있습니다.HEAD^^"현재 헤드의 부모"(즉, 현재 헤드의 조부모)를 의미합니다.HEAD^^^"현재 헤드의 부모의 부모" 등을 의미합니다.

^범위를 지정할 때도 (caret)를 사용할 수 있습니다.

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

<rev>

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

^<rev>

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

여기 시각적인 설명이 있습니다.다음과 같은 이력이 있다고 가정합니다.

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

피쳐가 마스터에 병합되었을 때C두 명의 조상과 함께 창조되었습니다.Git은 이 조상 번호를 할당합니다.주계열 조상B1과 피쳐 상위에 할당됩니다.F2가 할당됩니다.

따라서C^1언급합니다.B그리고.C^2언급합니다.F.C^는 에 대한 별칭입니다.C^1.

당신은 오직 사용할 것입니다.<rev>^3. 3개의 가지를 병합한 경우.

캐럿은 특정 커밋의 상위를 나타냅니다.예.HEAD^현재 HEAD 커밋의 상위를 가리킵니다.(또한,HEAD^^조부모를 가리킵니다.

캐럿은 커밋 오프셋(부모)을 나타냅니다.그래서 예를 들면.HEAD^과 "하나의 커밋"을합니다.HEAD^^^"3개의 합니다.헤드에서 3개의 커밋"을 의미합니다.

(^)는 명령어의 상위 소스를 가져옵니다.HEAD^는 HEAD의 부모를 얻을 것입니다.

OP: 깃에서 캐럿(^) 문자는 무엇을 의미합니까?

^(Caret) 및 ~(Tilde) 선택기

의 차이 HEAD^및 (케어)및HEAD~(는를 역주행하는 이 에는 (Tilde)된서를는다우이드는우이(다ysywte된ns)etm(HEAD.

틸데~

<rev>~[<n>]선택=<n>th세대 조상, 첫 번째 부모님만 있음*

캐럿 ^

<rev>^[<n>]선택=<n>th

*첫째 부모는 항상 병합의 왼쪽입니다(예: 병합된 분기의 커밋).

~ 및 ^ 함께하기

아래 그림에서 보는 바와 같이 ~와 ^ 두 선택기를 조합하여 사용할 수 있습니다.또한 다음을 사용하는 것에 유의합니다.HEAD시작점으로 분기, 태그 또는 커밋 해시와 같은 모든 정규 참조를 사용할 수 있습니다.

또한 ^ ~를 선택하고자 하는 조상이 무엇인지에 따라 아래 표에서 보는 것과 같이 서로 바꿔 사용할 수 있습니다.

Illustration of relative references in Git

출처: 주제에 대한 자세한 내용은 이 블로그 게시물에서 확인할 수 있습니다.

그렉 베이컨은 훌륭한 연결고리를 제공했지만 꽤 밀도가 높습니다.온라인 Git 소개 문서에서는 개정 및 범위 지정자를 소개합니다.

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

언급URL : https://stackoverflow.com/questions/1955985/what-does-the-caret-character-mean-in-git

반응형