강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

내일은 한걸음 더 나아갈거야님의 프로필 이미지
내일은 한걸음 더 나아갈거야

작성한 질문수

Git & GitHub, 원리부터 차근차근 - 근본깃 [완성편]

reset으로 커밋 히스토리 변경하기 #--soft #--mixed

[추가 질문] HEAD 와 COMMIT 관계가 궁금합니다.

해결된 질문

작성

·

72

·

수정됨

0

강사님의 친절한 답변 감사드립니다.

새로운 브랜치 생성은 HEAD를 기준으로 하는건지 또는 기존 BRANCH를 기준으로 하는건지 궁급합니다.

 

 

 

 

 

 

 

 

 

 

 

 

답변 2

0

geek님의 프로필 이미지
geek
지식공유자

안녕하세요 :)HEAD가 가리키고 있는 브랜치를 기준으로 새로운 브랜치가 만들어집니다.

강사님 이건 분리된 HEAD 에도 동일한가요? 분리된 HEAD가 가리키고 있는 COMMIT 이 포함된 HEAD의 최신 COMMIT 을 기준으로 브랜치된다고 이해하면 되는 건지요?

geek님의 프로필 이미지
geek
지식공유자

분리된 HEAD가 가리키고 있는 commit을 최신 커밋이 되도록, 브랜치가 생성됩니다 😃

예를 들어, 분리된 HEAD가 0502612b5c73d989cd1ac66cd6141e65423e1414 커밋을 가리키고 있다고 가정해 봅시다.

이 상황에서 git branch tt 명령어를 실행해, 새로운 브랜치를 만들어보겠습니다.

그러면, 아래와 같이 브랜치가 생성됩니다.

Screenshot 2025-04-12 at 3.34.08 PM.png


추가적으로 궁금하신 부분이 있다면, 언제든 질문주세요!

0

안녕하세요, 인프런 AI 인턴입니다. 내일은 한걸음 더 나아갈거야님, Git의 HEAD와 Commit 관계에 대해 추가적인 질문을 주셨군요.

1. “git checkout HEAD^” 명령어와 분리된 HEAD

  • git checkout HEAD^ 명령어는 현재 위치의 한 커밋 이전(commit^1)으로 HEAD를 이동시키게 됩니다. 이때, 브랜치 포인터가 가리키는 커밋이 아닌 특정 커밋을 직접 가리키게 되므로 분리된 HEAD 상태가 됩니다.

2. 분리된 HEAD의 이해

  • 네, 정확히 이해하신 것처럼, 분리된 HEAD란 HEAD가 브랜치를 경유하지 않고 직접 특정 커밋을 가리키는 상태를 말합니다. 이는 임시적으로 특정 커밋으로 이동하여 그 상태에서 작업을 할 때 사용됩니다.

3. 분리된 HEAD에서의 커밋 생성

  • 현재 위치에 새로운 커밋: 분리된 HEAD 상태에서 새로운 커밋을 생성하게 되면, 새로운 커밋은 HEAD가 가리키고 있는 커밋 뒤에 위치합니다. 따라서 새로운 커밋이 HEAD 위치에 생성되며 이후의 커밋은 삭제되지 않고 그대로 남아 있게 됩니다.
  • HEAD의 이동: 새로운 커밋을 하게 되면 HEAD는 자연히 이 새로운 커밋을 가리키게 됩니다. 이는 새로운 브랜치를 만들어서 그 브랜치에 커밋을 쌓는 것과 동일하게 취급될 수 있습니다.
  • 기존 브랜치와의 관계: 이 상태에서는 그 커밋이 현재 브랜치 파생과는 연관되지 않아 현재 브랜치의 최신 커밋에는 영향을 미치지 않습니다.

이해를 돕기 위해 분리된 HEAD에 관한 이전 설명을 참고하시면 좋습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

내일은 한걸음 더 나아갈거야님의 프로필 이미지
내일은 한걸음 더 나아갈거야

작성한 질문수

질문하기