git 용어 설명: origin, HEAD, main branch
Prof. Jong Min Lee이(가) 24일 전에 추가함
안녕하세요! Git 사용 시 자주 등장하는 origin
, HEAD
, main
브랜치에 대한 설명을 드리겠습니다.
1. origin¶
origin
은 원격 저장소의 별칭입니다.- 여러 개의 원격 저장소를 사용할 수 있는데, 일반적으로
git clone
으로 저장소를 복제하면 자동으로 최초의 원격 저장소에 대해origin
이라는 이름이 붙습니다. git remote -v
명령어를 통해 현재 프로젝트에 연결된 원격 저장소 목록과 그 별칭(URL)을 확인할 수 있습니다.- 예를 들어, GitHub나 GitLab과 같은 플랫폼의 저장소를 복제했다면,
origin
은 해당 플랫폼의 저장소를 가리킵니다. origin/main
또는origin/master
와 같은 형태로 사용될 때는 원격 저장소의 특정 브랜치를 의미합니다.
2. HEAD¶
HEAD
는 현재 작업 중인 브랜치 또는 커밋을 가리키는 포인터입니다.- 쉽게 말해, "지금 내가 어디를 보고 있고, 다음 작업이 어디에 영향을 미칠 것인가" 를 나타냅니다.
- 일반적으로
HEAD
는 현재 체크아웃된 브랜치의 최신 커밋을 가리킵니다. - 브랜치를 이동 (
git checkout <브랜치>
)하면HEAD
포인터도 해당 브랜치의 최신 커밋으로 이동합니다. HEAD^
또는HEAD~n
과 같은 표기법을 사용하여HEAD
가 가리키는 커밋의 이전 커밋으로 이동할 수 있습니다.- Detached HEAD 상태는
HEAD
가 특정 브랜치가 아닌 특정 커밋을 직접 가리키는 상태를 의미하며, 이 상태에서 새로운 커밋을 만들면 나중에 해당 커밋을 잃어버릴 수 있으므로 주의해야 합니다.
3. main (과거 master)¶
main
은 프로젝트의 주 개발 브랜치를 나타냅니다.- 과거에는
master
라는 이름이 주로 사용되었으나, 최근에는main
이라는 이름이 기본 브랜치로 많이 사용되는 추세입니다. 이는 "master"라는 용어가 가질 수 있는 부정적인 의미를 피하기 위함입니다. - 일반적으로 팀원들은
main
브랜치를 기준으로 새로운 기능을 개발하기 위한 feature branch를 생성하고, 개발이 완료되면main
브랜치로 병합(merge)합니다. main
브랜치는 프로젝트의 안정적인 최신 버전을 유지하는 역할을 합니다.- 로컬 저장소의 기본 브랜치 이름은
git config --global init.defaultBranch main
명령어를 통해 변경할 수 있습니다.
이 용어들을 이해하면 Git을 더욱 효과적으로 사용하고 협업하는 데 도움이 될 것입니다. 혹시 더 궁금한 점이 있으시면 언제든지 질문해주세요!