캐럿 (^) 문자는 무엇을 의미합니까?
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
'development' 카테고리의 다른 글
루비 : 자기 확장 (0) | 2020.07.26 |
---|---|
nodejs를 사용하여 기본 브라우저를 열고 특정 URL로 이동하는 방법 (0) | 2020.07.26 |
try / catch vs 예외 발생 (0) | 2020.07.26 |
C ++에서 유지 관리 가능하고 빠른 컴파일 타임 비트 마스크를 작성하는 방법 (0) | 2020.07.26 |
분당 100k 적중을 얻기 위해 nginx worker_process 조정 (0) | 2020.07.26 |