git log는 저장소의 커밋 목록을 보는 명령어이며, 다양한 형태로 볼 수 있게 여러 유용한 옵션을 제공한다.
git log --oneline은 커밋 목록을 단순한 형태로 보여준다. --oneline은 말 그대로 커밋 목록을 커밋당 한 줄로 보여주는 옵션이다. 커밋이 많이 쌓여 있는 상황에서 사용하기 좋으며, 짧은 커밋 해시와 커밋 메시지 제목만을 보여준다.
깃에서 말하는 브랜치란?
브랜치(branch)는 나뭇가지를 의미한다. 나무를 자세히 보면 한 줄기에서 가지들이 여러 갈래로 뻗어나오고, 또 그 가지에서 여러 가지들이 뻗어나온다는 걸 알 수 있다.
브랜치는 마치 줄기에서 뻗어나오는 나뭇가지와 같이 버전을 여러 흐름으로 나누어 관리하는 방법이다.
버전을 여러 흐름으로 나누어 관리한다는 말은, 쉽게 말해 다음 3단계로 버전을 관리하는 것을 의미한다.
- 브랜치를 나눈다.
- 각자의 브랜치에서 작업한다.
- (필요한 경우, 각자의 작업이 끝난 경우) 나눈 브랜치를 합친다.
(브랜치를 합치면 각자의 작업도 자동으로 하나로 통합됨. 합칠 때 '같은 코드를 다르게 수정한 부분'만 살펴보면 됨)![]()
깃이 제공하는 가장 기본적인, 최초의 브랜치를 master(또는 main) 브랜치라고 한다.
기본값은 master이지만 git을 설치할 때 main으로 바꾸었다. master는 노예 제도를 연상시킨다고 해서 main을 권장한다고 하며, 깃허브도 main이 기본 브랜치이다.브랜치에서 알아야 하는 개념이 있는데, 바로 HEAD와 체크아웃이다.
HEAD는 기본적으로 현재 작업 중인 브랜치의 최신 커밋을 가리키는 일종의 표시이다. 보통은 현재 작업 중인 브랜치의 최신 커밋을 가리키지만, 브랜치를 나누고 합치는 과정에서 HEAD의 위치를 자유자재로 바꿀 수 있다.
체크아웃이란 특정 브랜치에서 작업할 수 있도록 작업 환경(브랜치)을 바꾸는 것을 의미한다. 특정 브랜치로 체크아웃하게 되면 HEAD의 위치가 해당 브랜치의 최신 커밋을 가리키고, 작업 디렉터리는 체크아웃한 브랜치의 모습으로 바뀌게 된다.