inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Git & GitHub, 원리부터 차근차근 - 근본깃

브랜치 실제 모양 #HEAD ★

브랜치 실제 모양 #HEAD 7분 30초 쯤

해결된 질문

158

Lucas

작성한 질문수 27

0

git checkout HEAD^를 통해 현재 가리키는 HEAD가 한 칸 앞으로 이동 했을 때 *분리된 HEAD라고 표시되던데

*분리된 HEAD라고 표시되는 이유가 HEAD와 Main(브랜치)가 가리키는 commit이 달라져서 인가요?

git github

답변 2

1

geek

음... 아닙니다 ㅎㅎ

브랜치는 커밋을 가리킬 수 있구요.
HEAD는 브랜치 또는 커밋을 가리킬 수 있어요.

그래서,
HEAD가 main 브랜치를 가리키고,
main 브랜치는 커밋을 가리키는 구조가 가능한 것이지요.
(HEAD -> main 브랜치 -> 커밋)
그리고 지금의 상황은 'HEAD가 커밋을 간접적으로 가리키고 있다'고 표현합니다.

HEAD가 커밋을 직접 가리키게 만들어볼 수 있는데요.
(HEAD -> 커밋)
이때의 HEAD를 '분리된 HEAD'라고 부릅니다.

따라서, HEAD와 Main브랜치가 가리키는 커밋이 달라졌다는 점은 '분리된 HEAD'가 생긴 이유로 볼 수는 없어요. 물론, 분리된 HEAD일 때, 브랜치와 HEAD가 가리키는 커밋은 달라지게 되는데요. 이 점이 분리된 HEAD가 발생한 이유로 볼 수 없다는 내용입니다. 분리된 HEAD는 단순히 HEAD가 커밋 자체를 가리키고 있다는 뜻으로 봐주세요!

1

Lucas

아하 HEAD가 직접적으로 commit을 가리키고 있을 때를 분리된 HEAD 라고 표현하는 군요.

정말 친절한 답변 감사합니다!

1

geek

넵, 항상 응원합니다!
추가적으로 궁금한 내용이 있다면 언제든 질문주세요!

새해 복 많이 받으세요. 🙂

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Lucas님께서 궁금해 하신 ‘분리된 HEAD’에 대해 설명드리겠습니다.

분리된 HEAD 상태란 Git에서 HEAD가 특정 브랜치를 가리키지 않고, 직접 커밋을 가리킬 때 발생합니다.

분리된 HEAD 상태가 되는 이유

  • 커밋을 직접 체크아웃: git checkout 명령어 뒤에 특정 커밋의 해시를 입력하면 그 커밋으로 이동하게 됩니다. 이때 HEAD가 그 커밋을 가리키고 있지만, 어떤 브랜치를 가리키지는 않게 되므로 ‘분리된 HEAD’ 상태라고 불립니다.
  • 브랜치 다른 위치 이동: 예를 들어 git checkout HEAD^ 명령어를 사용하면 현재 커밋의 한 단계 전 커밋으로 HEAD가 이동하여, 이어지는 커밋 체인을 따르지 않고 ‘분리된 상태’가 됩니다.

분리된 HEAD 상태가 되면 원하는 대로 이력을 탐색하거나 코드를 실험해볼 수 있지만, 새로운 변경 사항을 커밋할 경우 나중에 새 브랜치를 생성하여 이력을 저장해 두는 것이 좋습니다. 그렇지 않으면 해당 변경 내용이 유실될 위험이 있습니다.

관련된 질문 및 답변이 포함된 링크는 다음과 같습니다:
- Git에서 분리된 HEAD 상태 이해하기

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

깃헙 작업 완료된 develop 브랜치 질문

0

77

2

[질문] git-flow 에서 release 브랜치 생성

0

58

1

upstream연결하기

0

76

2

gitignore관련 질문

0

86

2

staging area

0

85

2

브랜치 병합 전략에 대한 지식공유자님의 생각이 궁금합니다.

0

97

1

git pull merge 요청 시 draft

0

168

2

rebase 와 3-way merge 의 근본적인 차이

0

103

2

문서가 락이 걸어져있네요.

0

76

1

vscode에서의 github로의 푸시

0

106

2

Git 머지 커밋 되돌리기(revert)와 머지 방식 선택의 안전성 질문

0

143

2

git add 동작 원리에 대한 질문

0

65

2

git flow 문의

0

114

2

git rebase 질문

0

100

2

[추가 질문] 똑같은 브랜치를 다시 pull request하는 경우.

0

172

2

pull request 취소하기

0

699

2

.gitignore

0

78

2

Commit 메시지 변경 방법

0

446

2

switch 와 checkout 차이점.

0

299

1

강의자료 누락, commit 복사질문

0

153

4

강의 교재 다운로드

0

103

1

git init에서 오류 발생

0

283

2

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

0

105

2

HEAD 와 COMMIT 관계가 궁금합니다.

0

139

2