본문 바로가기
개발/Git, Github

[git] git cmmit 명령어

by 77monkey 개발자 2024. 6. 30.
반응형

 

 

 

 

git add 명령어 다음으로 배울 명령어는 git commit 명령어입니다. 이전에 작성한 포스팅이 전체적인 윤곽을 잡기에 도움이 될 것 같아서 참고하시면 좋을 것 같습니다.

 

[git] git 기본 개념

git은 정말 많이 사용되는 버전 관리 시스템입니다. 지옥에서 온 관리자라고 불릴 만큼 매우 어렵습니다. 하지만 천천히 접근을 하게 된다면 어느 정도 적응이 되고 활용할 수 있습니다. git 정의

77monkey.tistory.com

 

git commit 명령어

git commit 명령어는 프로젝트의 변경사항을 기록하는 데 사용됩니다. 그렇기 때문에 git add 명령어를 통해서 staging area에 있는 변경사항을 git commit 명령어로 repository에 저장할 수 있게 합니다. 

 

git commit 예시

아래의 코드는 77monkey.c라는 파일을 생성한 뒤 git add로 해당 파일을 stage area에 추가했습니다. git status를 통해서 stage area에 있는 것을 확인한 다음 git commit 명령어를 통해서 commit을 하나 만들었습니다. git commit 명령어를 입력하게 되면 stage area에 있는 모든 변경사항이 저장소(repository)로 이동하게 됩니다. 그렇기 때문에 파일명이나 위치를 지정하지 않고 바로 git commit 명령어를 사용하게 됩니다.

마지막으로 만든 commit을 확인하기 위해서 git log를 입력하였습니다.

$ touch 77monkey.c
$ git add 77monkey.c
$ git status
$ git commit
$ git log

실제로 코드를 입력하면, 아래와 같이 commit이 생성되는 것까지 확인하실 수 있습니다.

 

git add 77monkey.c
git add 77monkey.c

git commit을 입력하고 나면, 설정한 편집창이 나오는데 이때 vim으로 설정하지 않으셨다면 nano 편집창이 뜰 수 있습니다. 이때 해결 방법은 "git config --global core.editor vim"을 입력하시면 됩니다. git commit을 입력하면 아래와 같이 commit msg를 입력할 수 있는 편집창이 뜹니다. 이때 원하는 문구를 작성하시고 빈 줄을 하나 넣어주십니다. 아래 그림처럼 입력하시면 됩니다.

git commit 입력시 나오는 commit msg 입력창
git commit 입력시 나오는 commit msg 입력창

git log를 하시면 방금 만든 commit에 대한 정보를 볼 수 있습니다.

git log
git log

 

git commit 명령어 옵션

git commit 명령어에는 다양한 옵션들이 있습니다. 해당 옵션들에 대해서 알아보도록 하겠습니다. 

 

git commit -m "commit message"

위에서는 git commit 명령어 입력하고 편집창에서 "add empty 77monkey.c"를 입력했었는데, 이 과정을 명령어 한 줄로 입력할 수 있습니다. 한 줄로 표현이 되는 간단한 내용을 입력할 때 -m 옵션을 사용하게 됩니다.

$ git commit -m "add empty 77monkey.c"

 

git commit --amend

해당 명령어는 정말 자주 쓰는 명령어 중에 하나 입니다. 저 같은 경우에는 이 명령어를 정말 많이 씁니다. 해당 명령어는 마지막 commit에 대해서 수정할 때 쓰입니다. 위의 예시로 설명을 들면, 77monkey.c 파일을 빈 파일이 아닌 1을 입력해야 하는 경우나, commit msg를 수정하고 싶을 때 사용합니다. 예를 한 번 들어보도록 하겠습니다. 

77monkey.c 파일에 1을 넣었습니다. 그리고 git add를 통해서 stage area에 추가하고, git commit --amend 명령어를 입력했습니다.

git commit --amend
git commit --amend

그러면 git commit 입력했을 때처럼 commit msg 편집창이 나옵니다. 기존의 "add empty 77monkey.c"를 "add 77monkey.c"로 바꿔봤습니다.

git commit msg 편집창
git commit msg 편집창

 

그리고 git log를 통해서 결과를 확인하면 commit msg가 변경된 것을 확인할 수 있습니다. 또한 해당 commit에는 77monkey.c파일이 1을 가지고 있는 commit으로 변경되었습니다.

git log 결과
git log 결과

git commit --amend --no-edit

이 명령어는 위 명령어에서 --no-edit가 추가되었습니다. --no-edit에서 아실 수 있듯이 commit msg를 수정하지 않고 코드 수정 내용만 변경할 수 있습니다. 해당 부분은 77monkey.c 파일의 내용을 1이 아닌 2로 수정하여 git commit --amend --no-edit으로 변경하는 작업을 진행해 보시면 좋을 것 같습니다. 참고 코드는 다음과 같습니다. 

$ echo 2 > 77monkey.c
$ git add 77monkey.c
$ git commit --amend --no-edit

 

git commit -am "commit message"

git commit -am 명령어는 git commit -m 명령어의 응용입니다. -a 옵션은 work area에서 repository로 한번에 갈 수 있게 도와주는 옵션입니다. 즉, git add를 하지 않고 commit을 생성할 수 있게 됩니다. 

$ echo 3 > 77monkey.c
$ cat 77monkey.c
$ git commit -am "modify 77monkey.c"
$ git log

보시면 아시겠지만, 기존에 생성한 "add 77mokey.c" commit 위로 "modify 77monkey.c" commit이 쌓인 것을 볼 수 있습니다. 

git commit -am "commit message"
git commit -am "commit message"

 

마무리

git commit 명령어와 자주 사용되는 옵션에 대해서 알아보았습니다. 처음이면 조금 생소할 수도 있고 낯설 수도 있지만, 그래도 하다 보면 이해가 되는 부분도 있기 때문에 포기하지 않고 따라와 주시면 좋을 것 같습니다. 추후 git log을 통해서 나오는 commit에 대해서도 다뤄보도록 하겠습니다.

반응형