이전글



작업한 내용 커밋하기
git commit 명령어는 Git을 사용하면서 빈번하게 사용되는 명령어 중 하나입니다.
git commit 은 워킹 디렉터리에서 작업한(변경된) 내용을 Git 저장소에 반영할 때 사용합니다.  단 git add 명령으로 Staging Area에 추가하지 않은 파일은 커밋되지 않습니다. 다시 말해 git commitStaging Area에 등록된 대상들만 저장소로 Commit하며, 워킹 디렉터리에서 파일을 수정했다고 하더라도 git add 명령어를 통해 Staging Area에 추가하지 않은 대상은 Commit 하지 않습니다.

그러나 번거로움을 제거하고자 옵션을 통해 Staging Area를 거치지 않고 곧바로 Commit하는 방법또한 제공하고 있습니다.
Staging Area에 대해 궁금하다면 글의 이전글 링크를 참조해주시기 바랍니다.



먼저 파일 하나를 생성후 git add 명령으로 Staging Area에 등록해 다음 커밋 대상이라는 사실을 알려줍니다.
$ echo '파일 생성' >> testFile

$ cat testFile
파일 생성


git add 명령을 실행하여 Staging Area에 등록된 상태 확인
$ git add testFile

$ git status -s
A  testFile



git commit 명령을 실행합니다.
$ git commit




아무런 옵션 없이 git commit 명령만 실행한 경우에는 다음과 같이 편집기가 실행됩니다.
이것은 커밋 내용에 대한 커밋 메시지를 남기기 위한 것으로 Git에서는 커밋시에 이력을 확인할 수 있는 메시지를 남기는 것을 강제하고 있습니다. 

git commit -v 옵션을 사용하면 변경 내용을 알 수 있는 diff 메시지 또한 추가됩니다.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Changes to be committed:
#    new file:   testFile
#
~
~
~



※Git에서 사용되는 기본 에디터※
위의 예에서는 에디터로 vim 에디터를 사용하였으며, Git Bash에서 사용하는 기본 에디터는 git config --global core.editor 명령어로 확인할 수 있습니다. 특별한 설정 값이 출력되지 않는다면 기본 에디터를 사용하는 것입니다.



커밋 메시지를 입력한 후 에디터를 저장후 종료합니다.
커밋 메시지는 #으로 주석처리된 이외의 내용이 적용됩니다.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Changes to be committed:
#    new file:   testFile
#
testFile 커밋!!



커밋 메시지를 작성하고 종료하면 커밋이 완료됩니다.
커밋시에 몇 가지 정보를 얻을 수 있는데 현재 master 브랜치에 커밋했다는 사실과 체크섬값이 b4e58a0 이라는 것, 그리고 이번 커밋으로 하나의 파일이 수정되었고 내용 한 줄이 추가되었다는 사실을 알 수 있습니다.
$ git commit
[master b4e58a0] testFile 커밋!!
 1 file changed, 1 insertion(+)
 create mode 100644 testFile




에디터 없이 메시지 입력과 동시에 커밋하기
에디터를 통해 커밋 메시지를 작성하지 않고 메시지 입력과 동시에 커밋하고 싶은 경우에는 git commit -m [커밋 메시지] 를 사용합니다.
$ git commit -m 'testFile 커밋!!'




git add 생략하고 곧바로 Commit 하기
Staging Area는 워킹 디렉터리에서 여러 파일을 작업하고 필요한 파일들만 등록하여 커밋할 수 있다는 점에서는 유용하지만 변경한 내용을 즉시 모두 반영하고자 할 때에는 번거로운 절차가 될 수 있습니다.
커밋할 대상을 Staging Area에 등록하지 않은 상태, 즉 git add 하지 않은 상태에서 곧바로 저장소에 커밋할 수 있습니다. git commit -a 옵션을 사용하는 것입니다. 거기에 -m 옵션까지 더한다면, 커밋 메시지 또한 인라인으로 입력하여 커밋할 수 있습니다.
$ git commit -am 'testFile 커밋!!'




출처 - https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!