본문 바로가기

기본공부/깃(Git)&깃허브(GitHub)

[깃, 깃허브 배우기] 깃 커밋, git commit -6- (by. 드림코딩)

이제 첫 번째 커밋, 첫 번째 버전을 만들어보자. 버전을 만들 때는 "git commit"명령어를 이용하며, 스테이징 에리어에 있는 변경사항을 깃 리파지토리에 옮겨주는 역할을 한다. 아무런 옵션없이 이용하게 되면 기본적인 템플릿이 나온다.

 

터미널에 "git commit"을 입력하면 비쥬얼 스튜디오 에디터가 띄워진다.

 

보통은 커밋에 대한 타이틀을 작성하고 그 다음에 조금 더 자세한 상세설명을 적는 것으로 진행된다. 저장을 하고 파일을 닫으면 저장이 되어야하는데 나는 "Aborting commit due to empty commit message"가 뜨면서 저장이 되지 않았다. 빈 커밋 메시지로 인해 중단한다는 내용인데 어떻게 해결해야할지 몰라 검색하니 stackoverflow라는 홈페이지에서 Armin이라는 분이 답글 주신걸로 치니 해결이 되었다.

 

"git commit"시 에러메시지

 

stackoverflow by Armin
commit 시 마스터 브랜치에 해시코드가 id와 title이 표기가 된다. 3가지 파일이 변경되었고, 세 파일 다 처음으러 만들어짐이 표시된다.

 

"git log"명령어로 히스토리를 자세히 확인할 수 있다. 전체적인 해시코드와 누가 언제 했는지 Title과 Description을 확인할 수 있다. 

 

"git log" 명령어 입력

 

이런식으로 바로 git commit을 이용하는 경우는 없다. 예를들어 c.txt파일에 add를 추가하고, 모든 파일들을 스테이징 에리어로 옮긴다. 그리고 "git commit -m "Second commit""으로 -m 메시지 옵션을 이용해서 커밋 메시지를 바로 입력해 간단하게 커밋할 수 있다.

 

 

또한, 수정된 파일들은 다시 스테이징 에리어로 옮긴다음에 커밋을 해야하는데, 워킹디렉토리에 있는 모든 변경사항이 마음에 들어 add라는 명령어를 굳이 사용하지 않아도 "git commit -a" 명령어로 전부 커밋 또는 "git commit -am "third commit""으로 메시지와 함께 전부 커밋이 가능하다.

 

깃 리파지토리(디렉토리)에는 어떤 규모의 커밋을 해나가면 적당할까? 깃 디렉토리에 있는 커밋들은 히스토리의 창고이다. 작업들을 버전별로 나눠 관리할 수 있는 유용한 창고이다. 그렇기 때문에 이 히스토리에 전체적인 어플리케이션을 만들어서 하나의 커밋으로 저장하게 되면 아무런 의미가 없다. 이 히스토리에는 우리가 어플리케이션을 만든다면 세분화해서 기능별로 작은 단위로 만들어 나가는 것이 중요하다. 또한 의미있는 이름을 지정해서 저장하는 것이 중요한다.

 

커밋할 때 중요한 점은 커밋을 할 때는 고친 내용만 포함한 커밋을 만들어야한다. (여러가지를 고치고 새로운 기능을 넣으면 코드리뷰 및 히스토리를 볼 때 혼돈이 온다.) 커밋 메시지에 맞게 해당하는 그 내용만 포함해서 커밋 하는 것이 중요하다.

 

이제 소스트리로 커밋하는 내용을 알아보자. c.txt에서 내용을 수정하고 저장하면 워킹 디렉토리-modified에 c.txt파일이 생긴다. 여기서 c.txt옆 +버튼을 눌러주면 스테이징 에리어에 옮겨진다. 또한 선택한 줄만 옮길 수도 있다. (옮겨진 후 c.txt 옆 -를 누르면 다시 워킹 디렉토리로 옮겨진다.)

 

+를 누르면 c.txt가 스테이징 에리어에 옮겨진다. 추가로 선택한 줄만 스테이징 에리어에 옮길 수도 있다.

 

-를 누르면 c.txt가 워킹디렉토리로 옮겨진다. 추가로 선택한 줄만 워킹디렉토리에 옮길 수도 있다.

 

터미널에서 하는 것은 직관적이지 않기 때문에 UI툴로 세분화해서 커밋이 가능하다. 그리고 아래의 커밋 메시지를 입력하고 커밋버튼을 누르면 커밋이 된다. remote를 다룰 때 자동적으로 푸시를 하고 싶으면 "-에 바뀐 내용 즉시 푸시"체크박스에 체크하면 된다. 지금은 지정된 remote가 없기 때문에 활성화 되지 않는다.

 

아래 커밋메시지 창에 메시지를 입력해서 커밋이 가능하다.

 

그리고 히스토리를 눌러보면 여태까지 커밋 된 히스토리를 확인해 볼 수 있다.

 

git history