개발 이야기/Git

[GIT] git commit이란?

제이온 (Jayon) 2020. 11. 23.

 

 

안녕하세요? 코딩중독입니다.

 

저번 시간에는 git init, git status, git add를 알아 보았습니다.

 

이번 포스팅에서는 git commit에 대해서 설명하겠습니다.

 

 

이전 내용 Review

저번 포스팅에서는 gitProject 폴더를 만들고 그 안에서 git init을 하고, 하나의 파일을 만들어서 git add까지 해 보았습니다.

 

정상적으로 따라오셨다면, gitProject 폴더 안에는 test.txt와 test_2.txt가 있는 것입니다.

 

우선, git status 명령어를 쳐 봅시다.

 

 

 

 

위와 같이 두 개의 파일이 git에 의해 추적되었다는 사실을 알 수 있습니다.

 

 

git commit

자, 이제 조금 다른 이야기를 해보려고 합니다. 우리는 아직 변경 사항에 대해서 버전으로 만들지 않았습니다.

 

그렇다면, 버전이 뭘까요? 버전과 변화는 같은 걸까요? 아닙니다.

 

버전은 의미 있는 변화를 뜻하며, 작업이 완결된 상태이어야 합니다.

 

그리고 이렇게 의미 있는 변화에 대해 기록하는 것이 바로 commit입니다.

 

 

이제, 한 번 직접 commit을 해 봅시다. git bash에 git commit라고 입력해 주세요.

 

 

 

 

그렇다면, 위와 같이 vim 편집기가 실행되고, 맨 윗줄에 커서가 깜빡 깜빡거리는 모습을 보실 수 있습니다.

 

그리고 이 공간은 commit 메시지를 입력하는 공간입니다. commit 메시지에는 특정 소스가 변경된 이유를 적어야 합니다. 또한, 이 commit 메시지는 간결하면서도 변화의 내용을 한 눈에 알아볼 수 있도록 써야 합니다.

 

하지만, 지금 예제에서는 무언가 기능을 구현하지는 않았기때문에 commit 메시지를 대충 적겠습니다.

 

적당히 [i]를 눌러서 입력 모드로 전환 후 ver.1라고 쓰고, [esc]를 눌러서 명령 모드로 전환한 다음에 :wq를 입력하여 vim편집기를 나갑시다.

 

 

 

 

위와 같이 성공적으로 commit이 되었습니다. 그리고 이러한 commit 기록은 git log 명령어를 통해 확인할 수 있습니다.

 

 

 

 

위와 같이 ver.1라는 commit 메시지가 등록되어있는 모습을 보실 수 있습니다.

 

여기까지가 commit의 기본 개념 및 활용 방법이었습니다.

 

 

git add는 왜 필요할까?

그렇다면, 여기서 한 가지 의문이 들 수 있습니다. 그냥 commit을 바로 입력하면 되지, 왜 굳이 add를 입력한 후 commit을 해야 하는 걸까요?

 

이유는 간단합니다. 만약에 제가 건강 관리 프로그램을 팀 프로젝트로 개발한다고 가정해 봅시다. 그리고 저는 그 중에서도 사용자가 어떠한 운동을 수행하였는지 기록한 함수와 하루동안 한 운동의 시간, 칼로리 등에 관한 기능을 구현하기로 하였습니다.

 

물론, 저와 다르게 제 글을 읽으시는 분들은 하나의 기능을 만들 때마다 commit을 꼬박 꼬박해줄 수도 있습니다. 하지만, 저는 게을러서 코딩을 하다 보니 어느새 기능 3개를 만들어 버렸습니다.

 

이 상황에서 add 명령어가 없다면, 저는 어쩔 수 없이 3가지 기능을 하나의 commit으로 압축해야하고, 팀원한테 욕을 먹을지도 모릅니다.

 

하지만, add가 있다면 원하는 기능만 add해서 그것들만 따로 commit을 할 수 있습니다. 깜빡 깜빡하는 개발자들에게 아주 고마운 기능인 것이죠!

 

그리고 이렇게 add를 하여 commit 단계 이전의 공간을 stage area라고 합니다. 

 

 

이것을 직접 보여드리겠습니다.

 

저는 임의로 test_3.txt와 test_4.txt를 만들었습니다. 그리고 test_3.txt만 add를 하였습니다.

 

 

 

 

test_3.txt는 git에 의해 추적되었고, test_4.txt는 git에 의해 추적되지 않았습니다. 다시 말하면, test_3.txt는 commit 준비 단계인 stage area에 있지만, test_4.txt는 그렇지 않은 것입니다.

 

여기서 git commit를 입력하여 commit 메시지는 ver.2라고 입력해 보겠습니다.

 

 

 

 

하나의 파일만 변경되었고, commit 메시지도 정상적으로 전송된 것을 알 수 있습니다.

 

 

 

그리고 git status를 입력하게 되면, 이렇게 Untracked files 목록의 test_4.txt만 남게 됩니다.

 

 

정리

지금까지 git commit의 개념 및 사용 방법과 git add를 사용하는 이유에 대해서 알아 보았습니다.

 

버전 관리를 위해 가장 중요한 명령어인만큼 제대로 이해하셔야합니다.

 

그럼, 이만 글은 여기까지 쓰고 다음 포스팅에서 뵙겠습니다.

 

 

참고 사이트

opentutorials.org/course/2708

 

지옥에서 온 Git (새 수업으로 대체) - 생활코딩

이 수업은 GITn 시리즈로 완전히 대체 되었습니다. GITn은 보다 많은 내용을 작은 단위로 쪼개서 선택적으로 공부하실 수 있도록 제작된 수업입니다. 아래 주소를 통해서 GITn 을 접할 수 있습니다.

opentutorials.org

 

 

 

 

댓글

추천 글