inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

해결된 질문

139

내일은 한걸음 더 나아갈거야

작성한 질문수 70

0

만약 REPOSITORY 내의 HEAD 의 위치를 최신 COMMIT 보다 아래에 위치 시켰을 때, 강사님의 설명에 의하면 WORKING AREA 의 내용도 HEAD 의 위치의 내용으로 변경된다고 학습했습니다.

이 상태에서 커밋을 하게 되면 커밋되는 내용은 최신 COMMIT 을 기준으로 하는지 HEAD를 기준으로 하는지 궁금합니다.

아울러 브랜치도 최신 commit 을 기준으로 생성되는지 또는 HEAD 의 위치를 기준으로 생성되는지 궁급합니다.

 

좋은 강의 감사합니다.

git github

답변 2

0

geek

안녕하세요, 한걸음 더 나아갈거야 님:)
좋은 말씀 감사드립니다!

질문 주신 내용 답변드립니다.
(참고로, 지금의 상태를 분리된 HEAD 상태라고 부는데요.!)
이 상태에서 커밋을 새롭게 만들게 되면, 그 커밋은 HEAD를 기준으로 생성됩니다.

그래서, 아래와 같은 커밋 히스토리가 완성됩니다.

Screenshot 2025-04-12 at 1.19.54 PM.png


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

1

내일은 한걸음 더 나아갈거야

너무 감사합니다. 부족하여 계속 질문드려도 성실히 답변 해 주시니 너무 감사드립니다.

0

geek

ㅎㅎ 좋게 말씀해주셔서, 저도 감사드립니다!

0

인프런 AI 인턴

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

HEAD와 커밋의 관계

Git에서 HEAD는 현재 체크아웃된 브랜치의 최신 커밋을 가리킵니다. HEAD가 특정 커밋을 가리키도록 되돌아갔을 경우, 이는 분리된 HEAD 상태가 됩니다. 이 상태에서는 HEAD가 최신 커밋을 가리키지 않고 특정 커밋을 가리키게 됩니다.

커밋 내용 결정

  1. HEAD 기준 커밋:

    • 이동된 HEAD 위치에서 커밋하면, 그 시점의 파일 상태를 기준으로 새 커밋이 생성됩니다.
    • 즉, 작업 영역(Working Area)의 내용이 해당 커밋 시점의 상태라면, HEAD가 위치한 그 시점의 내용이 커밋됩니다.
  2. 브랜치 상태:

    • 만약 분리된 HEAD 상태에서 커밋을 만든다면, 이 커밋은 현재의 브랜치에 속하지 않고 ‘Detached HEAD’ 상태로 남습니다. 후속 조치(예: 새로운 브랜치를 생성하거나 다른 브랜치에 병합)를 취하지 않으면 이 변경사항이 유실될 수 있습니다.

분리된 HEAD 상태에서 작업하고 싶으시면, 이후 새 브랜치를 만들어 커밋을 관리하는 것이 좋습니다.

유사한 개념에 대해 더 살펴보고 싶으시다면 다음 링크를 참고하세요:
- Git에서 분리된 HEAD 상태 이해하기

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

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

0

77

2

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

0

57

1

upstream연결하기

0

76

2

gitignore관련 질문

0

86

2

staging area

0

84

2

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

0

97

1

git pull merge 요청 시 draft

0

166

2

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

0

98

2

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

0

76

1

vscode에서의 github로의 푸시

0

100

2

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

0

141

2

git add 동작 원리에 대한 질문

0

65

2

git flow 문의

0

113

2

git rebase 질문

0

99

2

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

0

169

2

pull request 취소하기

0

688

2

.gitignore

0

78

2

Commit 메시지 변경 방법

0

423

2

switch 와 checkout 차이점.

0

296

1

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

0

153

4

강의 교재 다운로드

0

103

1

git init에서 오류 발생

0

282

2

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

0

105

2

github 협업 내용 관련 질문 있습니다

0

92

2