🔥 git commit
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
옵션으로 커밋 메시지를 직접 작성하는 것이 편리합니다.
또 다른 유용한 옵션으로 -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"이라는 간단한 설명을 적고, 그 아래에 좀 더 자세한 변경 내역을 적었습니다. 이렇게 하면 나중에 커밋 이력을 볼 때 각 커밋이 어떤 내용인지 쉽게 파악할 수 있습니다.
이 그림은 Git의 기본적인 워크플로를 보여줍니다. git add
로 변경 사항을 Staging Area에 추가하고, git commit
으로 Local Repository에 커밋하는 과정을 나타내고 있죠.