
용어 설명
- HEAD : 현재 위치를 가리키는 포인터
- main : 브랜치 이름 (보통 기본 브랜치)
- HEAD → main : 현재 `main`브랜치 위에서 작업 중
1. HEAD란?
`head`는 내가 현재 작업 중인 커밋(또는 브랜치) 를 가리키는 포인터(pointer)이다.
쉽게 말해
- `HEAD`는 "지금 내가 보고 있는 커밋"을 가리킨다.
- 보통은 `HEAD`가 `main` 브랜치를 가리키고 있다.
git log --oneline
# 가장 위에 있는 커밋 = HEAD가 가리키는 커밋
예
HEAD → main → 커밋A
2. main이란?
main은 브랜치 이름이다. 예전에는 master가 기본이었지만, 요즘은 main이 기본이다.
쉽게 말해
- main은 당신의 메인 타임라인이라고 생각하면 쉽다.
- GitHub에서도 첫 브랜치는 main으로 생성된다.
정리하자면 둘의 관계는
개념 | 의미 | 예시 |
HEAD | 현재 위치를 가리킴 | "내가 지금 main 브랜치를 보고 있음" |
main | 브랜치 이름 | 여러 브랜치 중 하나 (보통 기본) |
HEAD → main → 커밋ABC
이 구조는 말 그대로
지금 main 브랜치의 최신 커밋을 내가 보고(작업하고) 있다.
3. 상황별 예시
▶ HEAD~3
- HEAD에서 3칸 전 커밋
- git rebase -i HEAD~3 → 최근 3개 커밋 편집
▶ git checkout main
- main 브랜치로 이동 (HEAD가 main을 가리키게 됨)
4. 참고로 알아보기
4-1. 브랜치 종류
브랜치 이름은 마음대로 지을 수 있지만, 용도에 따라 자주 쓰는 네이밍 패턴이 있다.
📌 주요 브랜치들
브랜치 이름 | 용도 |
`main` | ✅ 현재 기본 브랜치. 배포 대상 |
`master` | 예전 기본 브랜치 이름 (현재는 거의 main으로 변경됨) |
`develop` | 개발 중인 기능을 모으는 브랜치 (git-flow 패턴에서 사용) |
`feater/로그인` | 새로운 기능 개발용 브랜치 |
`fix/버그수정` | 버그 수정용 브랜치 |
`hotfix/보안패치` | 급한 배포용 수정 브랜치 |
`release/버전명` | 릴리즈 준비 브랜치 |
Git에서는 브랜치 이름에 /가 포함돼도 하위 디렉토리처럼 구분해 보여준다.
4-2. HEAD와 함께 알아두면 좋은 것들
이름 | 역할 |
HEAD | ✔ 현재 체크아웃된 커밋 (작업 중인 커밋 또는 브랜치) |
ORIG_HEAD | `rebase`, `reset` 이전 상태 저장용 백업 포인터 |
FETCH_HEAD | `git fetch`로 가져온 최신 커밋을 가리킴 |
MERGE_HEAD | 병합 중일 때 대상 커밋을 가리킴 |
CHEERY_PICK_HEAD | 체리픽 중일 때 대상 커밋을 가리킴 |
* 체리픽이란?
체리픽(Cherry-pick)은 Git에서 특정 커밋만 골라서 다른 브랜치에 복사하는 작업이다.
🍒 "이 커밋 하나만 가져오고 싶어!" 할 때 쓰는 기능이다.
'Git&GitHUB' 카테고리의 다른 글
Git Branching 연습하기 (1) git 기본 (commit/branch/checkout/merge/rebase) (3) | 2025.05.21 |
---|---|
[깃/깃허브] 커밋 잔디 색상, 왜 점점 진해지기 어려워지나요? (2) | 2025.05.20 |
[깃/깃배쉬] 협업 중인 GitHub 레포지토리가 사라지면 어떻게 될까? (4) | 2025.05.19 |
[깃/깃배쉬] Git Bash 에서 커밋할 때 readme 파일 이랑 병합하는 법 (1) | 2025.05.15 |
[깃/깃허브] VSCode에서 깃허브 연결 끊기 (로컬 프로젝트에서 Git 분리) (2) | 2025.05.02 |

용어 설명
- HEAD : 현재 위치를 가리키는 포인터
- main : 브랜치 이름 (보통 기본 브랜치)
- HEAD → main : 현재
main
브랜치 위에서 작업 중
1. HEAD란?
head
는 내가 현재 작업 중인 커밋(또는 브랜치) 를 가리키는 포인터(pointer)이다.
쉽게 말해
HEAD
는 "지금 내가 보고 있는 커밋"을 가리킨다.- 보통은
HEAD
가main
브랜치를 가리키고 있다.
git log --oneline # 가장 위에 있는 커밋 = HEAD가 가리키는 커밋
예
HEAD → main → 커밋A
2. main이란?
main은 브랜치 이름이다. 예전에는 master가 기본이었지만, 요즘은 main이 기본이다.
쉽게 말해
- main은 당신의 메인 타임라인이라고 생각하면 쉽다.
- GitHub에서도 첫 브랜치는 main으로 생성된다.
정리하자면 둘의 관계는
개념 | 의미 | 예시 |
HEAD | 현재 위치를 가리킴 | "내가 지금 main 브랜치를 보고 있음" |
main | 브랜치 이름 | 여러 브랜치 중 하나 (보통 기본) |
HEAD → main → 커밋ABC
이 구조는 말 그대로
지금 main 브랜치의 최신 커밋을 내가 보고(작업하고) 있다.
3. 상황별 예시
▶ HEAD~3
- HEAD에서 3칸 전 커밋
- git rebase -i HEAD~3 → 최근 3개 커밋 편집
▶ git checkout main
- main 브랜치로 이동 (HEAD가 main을 가리키게 됨)
4. 참고로 알아보기
4-1. 브랜치 종류
브랜치 이름은 마음대로 지을 수 있지만, 용도에 따라 자주 쓰는 네이밍 패턴이 있다.
📌 주요 브랜치들
브랜치 이름 | 용도 |
main |
✅ 현재 기본 브랜치. 배포 대상 |
master |
예전 기본 브랜치 이름 (현재는 거의 main으로 변경됨) |
develop |
개발 중인 기능을 모으는 브랜치 (git-flow 패턴에서 사용) |
feater/로그인 |
새로운 기능 개발용 브랜치 |
fix/버그수정 |
버그 수정용 브랜치 |
hotfix/보안패치 |
급한 배포용 수정 브랜치 |
release/버전명 |
릴리즈 준비 브랜치 |
Git에서는 브랜치 이름에 /가 포함돼도 하위 디렉토리처럼 구분해 보여준다.
4-2. HEAD와 함께 알아두면 좋은 것들
이름 | 역할 |
HEAD | ✔ 현재 체크아웃된 커밋 (작업 중인 커밋 또는 브랜치) |
ORIG_HEAD | rebase , reset 이전 상태 저장용 백업 포인터 |
FETCH_HEAD | git fetch 로 가져온 최신 커밋을 가리킴 |
MERGE_HEAD | 병합 중일 때 대상 커밋을 가리킴 |
CHEERY_PICK_HEAD | 체리픽 중일 때 대상 커밋을 가리킴 |
* 체리픽이란?
체리픽(Cherry-pick)은 Git에서 특정 커밋만 골라서 다른 브랜치에 복사하는 작업이다.
🍒 "이 커밋 하나만 가져오고 싶어!" 할 때 쓰는 기능이다.
'Git&GitHUB' 카테고리의 다른 글
Git Branching 연습하기 (1) git 기본 (commit/branch/checkout/merge/rebase) (3) | 2025.05.21 |
---|---|
[깃/깃허브] 커밋 잔디 색상, 왜 점점 진해지기 어려워지나요? (2) | 2025.05.20 |
[깃/깃배쉬] 협업 중인 GitHub 레포지토리가 사라지면 어떻게 될까? (4) | 2025.05.19 |
[깃/깃배쉬] Git Bash 에서 커밋할 때 readme 파일 이랑 병합하는 법 (1) | 2025.05.15 |
[깃/깃허브] VSCode에서 깃허브 연결 끊기 (로컬 프로젝트에서 Git 분리) (2) | 2025.05.02 |