🔥 git commit

421자
5분

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

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

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

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

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

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

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

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

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

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

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

shell
# 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
# 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(-)
  • a 옵션을 사용할 때는 주의할 점이 있습니다. 이 옵션은 이미 한 번 커밋된 적 있는 파일의 변경 사항만 자동으로 추가합니다. 새로 생성한 파일은 여전히 git add로 직접 추가해야 합니다.

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

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

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

text
Add login form

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

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

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

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

YouTube 영상

채널 보기
AI는 데이터를 어떻게 분류할까? 벡터의 거리와 KNN 알고리즘 | 선형대수학
우리가 매일 쓰는 맞춤법 검사기와 라우터 속에 숨겨진 알고리즘은? | Trie 자료구조 이야기
투영과 예측, 그리고 선형 결합 | 선형대수학
AI는 왜 수백 차원의 벡터를 사용할까? 고차원 공간과 행렬 | 선형대수학
스칼라 곱셈과 내적의 기하학적 의미 | 선형대수학
행렬의 기본 연산 - 행렬 덧셈, 스칼라 곱, 전치 | 선형대수학
트라이(Trie)에서 단어를 삭제하는 방법 | Trie 자료구조 이야기
직교성과 벡터 투영 | 선형대수학