코딩해보니/Git

[Git_16] 커밋(Commit)의 이해 - 커밋 이력 확인하기

위시랜 2022. 12. 8. 11:46

지난 시간 커밋하는 방법을 알아봤습니다.

 

 

[Git_15] 커밋(Commit)의 이해 - 커밋 하기

커밋(commit)은 그냥 영단어의 의미로는 왜 커밋이라고 했는지 이해가 되지 않습니다. ㅎㅎ IT에서는 커밋은 다양하게 쓰입니다만, 전반적으로 저장되지 않은 모든 데이터를 데이터베이스에 저장

wishlan.tistory.com


커밋 이력 확인하기
커밋 이력 확인하기

 

첫 번째 커밋 후 이력 확인하기

이어서 커밋한 후 커밋한 이력(히스토리)을 확인해 보겠습니다.

커밋한 기록은 log 명령어로 확인할 수 있습니다.

사용법은 다음과 같습니다.

# 커밋 이력(히스토리) 확인하기
$ git log <옵션>

$ git log를 실행한 화면은 다음과 같습니다.

커밋 이력(히스토리) 확인하기
커밋 이력(히스토리) 확인하기

log 명령어는 시간 순으로 커밋한 이력을 출력하는데,

최신 커밋 기록부터 내림차순으로 나열합니다.

우리는 커밋을 딱 한번 했었기에 1개의 이력이 확인됩니다.

커밋 로그에 대한 내용을 살펴보면 다음과 같습니다.

 

commit 83165405f7ac01edd526fc99e9d37514db514324

[커밋 아이디(ID)]

commit 이후 영문과 숫자로 이뤄진 40자의 이상한 문자열이 있습니다.

이를 “커밋 아이디(ID)”라고 합니다.

커밋ID는 특정 커밋을 가리키는 절대적 이름이기에 중복되지 않습니다.

커밋 ID는 SHA1이라는 해시 알고리즘을 사용하기 때문에 40자리의 복잡한 값으로 되어 있습니다.

Git은 SHA1 해시 키를 생성함으로써 중복되지 않은 고유의 키를 생성할 수 있습니다.

 

(HEAD -> master)

HEAD 포인트를 나타내고 있습니다.

HEAD는 해당 커밋 아이디가 가장 최신의 커밋 지점이라는 것을 의미하고,

master를 화살표로 가리키고 있는 것은 현재 작업 중인 브랜치가 master이고,

이 브랜치의 가장 최신 커밋을 가르키게 되는 것입니다.

이 HEAD에 대해 기억해야할 점은
HEAD는 현재 내가 바라보고 있는 커밋(commit)을 가리킨다”는 것입니다.

 

Author: mino <min****@gmail.com>

[사용자 정보]
커밋을 실행한 사용자 정보를 나타냅니다.
이는 앞서 git config 로 설정한 사용자 설정 값을 따라, 커밋할 때 자동으로 기록되어집니다.

 

Date: Mon Sep 19 13:31:12 2022 +0900

[커밋 실행 일시]
커밋을 실행한 일시를 나타냅니다.

 

first commit

[커밋 메시지]
마지막으로 커밋할 때 입력한 커밋 메시지입니다.


두 번째 커밋 후 이력 확인하기

filea.html을 수정해 보겠습니다.

filea.html 파일 열기
filea.html 파일 열기

filea.html을 열고,

VSCODE에서 "<h2>파일A를 첫 커밋 이후 처음으로 수정합니다.</h2>"를 입력하고 저장합니다.

VSCODE에서 filea.html 파일 내용 수정
VSCODE에서 filea.html 파일 내용 수정

저장 후 다시 터미널에서 Git의 상태를 확인해 봅니다.

git status 명령어로 Git 상태 확인
git status 명령어로 Git 상태 확인

filea.html 파일이 modified 상태라는 것을 확인할 수 있습니다.

더 이상 수정할 사항이 없다면 두 번째로 커밋해 보겠습니다.

커밋하기 위해서는 스테이지에 추가해서 커밋할 목록(Index)을 구성해야 합니다.

스테이지에 추가하는 명령어는 $ git add입니다.

 

우리는 앞서 스테이지에 등록과 커밋을 동시에 하는 방법을 배웠습니다.

아래는 스테이지에 등록과 동시에 커밋하고, Git 상태를 확인한 후, 커밋 로그를 확인한 결과입니다.

커밋(commit)하고 Git 상태 확인 후 커밋 이력 확인 하기
커밋(commit)하고 Git 상태 확인 후 커밋 이력 확인 하기

  • git commit -am “second commit” 명령으로 “second commit”이라는 커밋 메시지로 -am 옵션을 사용해 스테이지에 파일 등록과 동시에 커밋을 실행했습니다.
  • git status로 Git 상태를 확인해 보니, 스테이지가 다시 비워졌음을 확인했습니다.
  • git log로 커밋 이력을 다시 확인해 보니, 커밋 아이디가 2개 확인됩니다. HEAD는 마지막 커밋 아이디에 표시되고 있는 것도 확인할 수 있습니다.

소스트리에서도 커밋 이력(History)을 확인할 수 있으며, 다음은 소스트리로 커밋 기록을 확인한 화면입니다.

소스트리(Sourcetree)에서 커밋 이력(히스토리) 확인
소스트리(Sourcetree)에서 커밋 이력(히스토리) 확인

터미널(Git Bash)에서 git log 명령어를 사용해 이력을 확인했으나,

터미널에서 확인하는 것이 사실 가독성이 좋진 않습니다. 커밋 횟수가 많을수록 보기가 더 어려워집니다.

소스트리와 같은 GUI 툴을 이용하면 좀 더 편리하고 직관적으로 커밋 기록을 확인할 수 있습니다.

 

소스트리 왼쪽 사이드 메뉴에 “History”를 선택하면

소스트리에서 History 메뉴 클릭
소스트리에서 History 메뉴 클릭

오른쪽에 커밋한 이력이 목록으로 보여주고

해당 기록 중에 하나를 마우스로 클릭해보면,

소스트리에서 커밋 이력

아래쪽에 커밋 아이디와 커밋한 파일목록과

파일에 대해 어디가 변화되었는지 확인할 수 있습니다.

소스트리(Sourcetree)에서 커밋 이력 상세 내용 확인
소스트리(Sourcetree)에서 커밋 이력 상세 내용 확인


여기까지 커밋에서 HEAD가 의미하는 바를 알아보기 위해,

커밋하고 커밋 이력(히스토리)을 확인하며 감을 잡아봤습니다.

커밋을 위해서는 스테이지에 등록을 먼저 해야 합니다.

스테이지에 등록한 파일과 커밋한 내용을 취소할 수도 있습니다.

되돌리는(취소하는) 방법을 다음에 알아보겠습니다.