🔥 git commit

421자
5분

git commit은 변경 사항을 로컬 저장소에 기록하는 명령입니다. 이전에 살펴본 것처럼 git add로 Staging Area에 변경 사항을 추가했다면, 이제 git commit으로 변경 사항을 저장소에 기록할 수 있습니다.

가장 간단한 형태의 git commit 사용법은 아래와 같습니다.

git commit -m "Commit message"
shell
  • m 옵션 뒤에 커밋 메시지를 작성하면 됩니다. 커밋 메시지는 변경 사항을 간략하게 설명하는 내용으로 작성합니다.

예를 들어, 새로운 파일을 추가하고 커밋한다면 아래와 같이 할 수 있겠죠.

# 새로운 파일 생성
echo "Hello, Git!" > hello.txt
 
# 파일을 Staging Area에 추가
git add hello.txt
 
# 변경 사항을 커밋
git commit -m "Add hello.txt"
shell

이렇게 하면 "Add hello.txt"라는 메시지와 함께 변경 사항이 저장소에 기록됩니다.

[main 9c5b645] Add hello.txt
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt
text

만약 git commit-m 옵션 없이 실행하면 어떻게 될까요? 그럴 경우 Git은 기본 편집기를 열어 커밋 메시지를 작성하도록 합니다.

$ echo "Hello, Git2" >> hello.txt
$ git add .
$ git commit
text

보통은 Vim이나 Emacs 같은 터미널 기반 편집기가 열리는데, 편집기 사용법을 모른다면 당황스러울 수 있습니다. 그래서 대부분의 경우 -m 옵션으로 커밋 메시지를 직접 작성하는 것이 편리합니다.

lecture image

또 다른 유용한 옵션으로 -a가 있습니다. 이 옵션을 사용하면 git add를 하지 않고도 변경된 파일을 자동으로 Staging Area에 추가한 뒤 커밋합니다. 아래는 -a 옵션 사용 예시입니다.

# hello.txt 파일 수정
$ echo " Hello, Git! Hello, World! " > hello.txt
 
# git add 없이 바로 커밋
$ git commit -am "Update hello.txt"
 
[main 713d307] Update hello.txt
 1 file changed, 1 insertion(+), 2 deletions(-)
shell
  • a 옵션을 사용할 때는 주의할 점이 있습니다. 이 옵션은 이미 한 번 커밋된 적 있는 파일의 변경 사항만 자동으로 추가합니다. 새로 생성한 파일은 여전히 git add로 직접 추가해야 합니다.

커밋을 할 때는 적절한 커밋 단위로 나누는 것이 중요합니다. 커밋 하나에는 관련 있는 변경 사항들을 하나로 묶어서 포함시키는 것이 좋습니다. 서로 관련 없는 변경 사항들을 한 커밋에 묶어 넣으면 나중에 커밋 이력을 볼 때 혼란스러울 수 있으니까요.

커밋 메시지를 작성할 때도 알아보기 쉽게 작성하는 것이 좋습니다. 메시지의 첫 줄에는 커밋의 내용을 간단 명료하게 작성하고, 그 후에 필요하다면 좀 더 자세한 설명을 덧붙이는 것이 관례입니다.

아래는 좋은 커밋 메시지를 작성하는 예시입니다.

Add login form

- Add login.html template
- Implement login view function
- Add login URL pattern
text

첫 줄에 "Add login form"이라는 간단한 설명을 적고, 그 아래에 좀 더 자세한 변경 내역을 적었습니다. 이렇게 하면 나중에 커밋 이력을 볼 때 각 커밋이 어떤 내용인지 쉽게 파악할 수 있습니다.

lecture image

이 그림은 Git의 기본적인 워크플로를 보여줍니다. git add로 변경 사항을 Staging Area에 추가하고, git commit으로 Local Repository에 커밋하는 과정을 나타내고 있죠.