(Git 명령어) 5. git log - 커밋 조회하기

Byeongho Jeon·2025년 2월 10일

Git

목록 보기
6/13
  1. git log는 저장소의 커밋 목록을 보는 명령어이며, 다양한 형태로 볼 수 있게 여러 유용한 옵션을 제공한다.

  2. git log --oneline은 커밋 목록을 단순한 형태로 보여준다. --oneline은 말 그대로 커밋 목록을 커밋당 한 줄로 보여주는 옵션이다. 커밋이 많이 쌓여 있는 상황에서 사용하기 좋으며, 짧은 커밋 해시커밋 메시지 제목만을 보여준다.

  1. git log --patch or git log -p는 각각의 커밋이 무엇을 어떻게 변경했는지 상세하게 보여준다.
  1. git log --graph는 각 커밋을 그래프의 형태로 보여준다. 브랜치가 여러 개로 나누어지고 합쳐지는 환경에서 --graph 옵션을 이용하면 브랜치별 커밋의 가독성을 높일 수 있다.
  1. git log 명령어는 기본적으로 현재 작업중인 브랜치를 기준으로 커밋 목록을 보여준다.
    여러 브랜치로 나누어져 있는 상황에서 모든 브랜치의 커밋 목록을 보고 싶을 때는 git log --branches를 사용하면 된다. 모든 브랜치의 커밋 목록이 출력되므로 어떤 브랜치에서 커밋 목록을 조회하든 동일한 결과를 볼 수 있다.
    아래와 같은 상황에서 main 브랜치에서 git log를 입력하면 커밋이 2개만 출력되고, foo 브랜치에서 git log를 입력하면 커밋이 4개가 출력된다. 이때 main 브랜치에서 git log --branches를 입력하면 foo 브랜치의 커밋까지 총 4개의 커밋이 출력된다.

깃에서 말하는 브랜치란?

브랜치(branch)는 나뭇가지를 의미한다. 나무를 자세히 보면 한 줄기에서 가지들이 여러 갈래로 뻗어나오고, 또 그 가지에서 여러 가지들이 뻗어나온다는 걸 알 수 있다.
브랜치는 마치 줄기에서 뻗어나오는 나뭇가지와 같이 버전을 여러 흐름으로 나누어 관리하는 방법이다.
버전을 여러 흐름으로 나누어 관리한다는 말은, 쉽게 말해 다음 3단계로 버전을 관리하는 것을 의미한다.

  1. 브랜치를 나눈다.
  2. 각자의 브랜치에서 작업한다.
  3. (필요한 경우, 각자의 작업이 끝난 경우) 나눈 브랜치를 합친다.
    (브랜치를 합치면 각자의 작업도 자동으로 하나로 통합됨. 합칠 때 '같은 코드를 다르게 수정한 부분'만 살펴보면 됨)

깃이 제공하는 가장 기본적인, 최초의 브랜치를 master(또는 main) 브랜치라고 한다.
기본값은 master이지만 git을 설치할 때 main으로 바꾸었다. master는 노예 제도를 연상시킨다고 해서 main을 권장한다고 하며, 깃허브도 main이 기본 브랜치이다.

브랜치에서 알아야 하는 개념이 있는데, 바로 HEAD와 체크아웃이다.
HEAD는 기본적으로 현재 작업 중인 브랜치의 최신 커밋을 가리키는 일종의 표시이다. 보통은 현재 작업 중인 브랜치의 최신 커밋을 가리키지만, 브랜치를 나누고 합치는 과정에서 HEAD의 위치를 자유자재로 바꿀 수 있다.
체크아웃이란 특정 브랜치에서 작업할 수 있도록 작업 환경(브랜치)을 바꾸는 것을 의미한다. 특정 브랜치로 체크아웃하게 되면 HEAD의 위치가 해당 브랜치의 최신 커밋을 가리키고, 작업 디렉터리는 체크아웃한 브랜치의 모습으로 바뀌게 된다.

profile
안녕하세요. 개발자 지망생 전병호입니다!

0개의 댓글