Git HEAD^ 대 Git HEAD~ 대 Git HEAD{@}

John Wachira 2024년2월15일
  1. Git HEAD^(캐럿)
  2. Git HEAD~(물결표)
  3. Git HEAD{@}
Git HEAD^ 대 Git HEAD~ 대 Git HEAD{@}

이 기사에서는 Git 캐럿과 Git 물결표의 차이점에 대해 설명합니다. Git 캐럿은 ^로 표시되고 물결표는 ~로 표시됩니다.

HEAD{@}도 논의할 예정입니다. 시작하자.

Git HEAD^(캐럿)

Git HEAD에 캐럿을 도입할 때 커밋의 첫 번째 부모를 가리킵니다. 따라서 git HEAD^2는 커밋의 두 번째 부모를 가리킵니다.

커밋의 부모는 무엇입니까?

커밋의 부모는 하나 이상의 브랜치를 다른 브랜치와 병합할 때 작동합니다. 예를 들어 보겠습니다.

우리 저장소에는 녹색의 Master 분기와 노란색의 Other-Branch 분기가 있습니다.

git HEAD^

other-branch의 커밋 Emaster 분기의 A 커밋과 병합됩니다. 따라서 A 커밋에는 두 개의 상위 커밋이 있다고 말할 수 있습니다.

따라서 상위 커밋은 단순히 커밋의 이전 커밋입니다.

아래 명령어를 보세요.

$ git show HEAD^ --oneline

위 명령을 실행하면 A 커밋에 있는 경우 B 커밋에서 HEAD가 이동합니다.

$ git show HEAD^2 --oneline

반면에 위의 명령은 HEAD를 이동하여 E를 커밋합니다.

HEAD^HEAD^1은 같은 용도로 사용됩니다.

위의 설명은 병합된 분기가 있는 경우에만 적용된다는 점에 유의할 가치가 있습니다. 한 분기로 작업하는 경우 HEAD^HEAD~와 동일합니다.

Git HEAD~(물결표)

HEAD에 물결표를 추가하면 분기에서 마지막 커밋의 이전 커밋을 가리킵니다. 직선으로 돌아가는 것과 같습니다.

예를 들어 보겠습니다.

git HEAD ~

따라서 HEAD가 커밋 A에 있으면 git HEAD~ 또는 git HEAD~1B 커밋으로 이동합니다. HEAD~2C를 커밋하도록 우리를 이동합니다.

other-branchE 커밋에서 체크아웃하면 HEAD~1F 등을 커밋하도록 이동합니다.

Git HEAD{@}

이 조합은 로컬 저장소의 특정 시간에 참조 위치를 가리킵니다. 일반적으로 아래와 같이 git reflog 명령을 실행할 때 팝업됩니다.

git reflog 명령

간단히 말해서 캐럿은 다른 분기의 분기를 병합할 때 유용하며 다른 분기의 커밋으로 전환해야 합니다. 물결표를 사용하면 특정 분기에서 마지막 커밋의 이전 커밋으로 이동할 수 있습니다.

단일 브랜치에서 작업할 때 HEAD^HEAD~와 동일합니다.

작가: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

관련 문장 - Git Head