git commit -m “message”
Stage 에서 repository 로 이동시켜 version 관리를 실제로 시작하게 하는 명령어.
즉, 현재 stage의 snapshot을 repository에 기록.
note: snapshot 방식이란?
- 현재 repository에 저장된 최신의 내용(
HEAD
가 해당 내용을 가르킴)과 현재 stage의 내용의 차이를 비교하여 - 차이점만을 저장하는 방식을 가르킴.
- 기존의 VCS와 Git의 차이점 중의 하나.
- 마치 차이점을 사진을 찍듯이 저장한다는 의미로 snapshot방식이라고 부름.
HEAD
(일종의 포인터)가 가르키고 있는 commit된 내용(=가장 최신의 repository내용)을 기본으로 삼아 현재의 stage의 내용과 비교하여 차이점을 기록함.
다음 글에 이어지는 예제:2024.05.20 - [utils/git and github] - [Git] git add
Example
git commit -m "add first_file.txt"
-m
옵션(=로그를 inline으로 편집 option)을 빼고 수행시,
shell에서 EDITOR에 등록된 편집기 SW가 수행되어 해당 commit에 대한 로그를 남기게 됨.commit
을 할 경우, 각각의 commit을 구별할 수 있는 메시지가 필요함.- 이를 commit message라고 하며, 일종의 해당 commit에 대한 설명서임.
- GIT에서는 반드시 commit 메시지를 작성해야함.
- 사실
--allow-empty-message
사용할 경우, commit message가 없는 commit 생성가능.
git config --global core.editor
명령으로 어떤 editor sw를 사용할지 선택 가능함.
아래 그림과 같은 출력이 나옴.
- 여기서는 최초로 git commit을 수행한 경우로, "유저가 누구인지를 입력하라는 메시지"를 볼 수 있음.
- 이 경우 시키는 대로 유저 정보를 git에 설정하고나서 commit 을 수행하면 됨.
정상적으로 모든 untracked files가 add 와 commit 이 되어 version 관리 상태가 되면
git status수행시 다음과 같이 nothing to commit, working tree clean 메시지를 볼 수 있음.
특정 파일 버전관리에 추가방법: add
, commit
즉, 다음과 같은 과정이 일반적으로 특정 파일의 버전관리에 반복됨.
- working tree에서 파일 수정을 하고나서
git add
를 통해 stage로 보내고,- 로그와 함께 repository에서 version 관리에 등록 하기 위해
git commit -m “message”
를 이용함.
add
+commit
: stage상태로 올리면서 commit 동시에 수행하기.
git commit -a
명령어를 수행시 한번에 처리가 가능함.
- 현재의 tracked 상태의 모든 파일들에 대한 변경사항을 stage로 올리고나서 commit 을 수행.
- 즉, 새로운 파일을 작성한 경우는 untracked 상태이기 때문에
-a
로 동시 처리는 안됨.
'utils > git and github' 카테고리의 다른 글
[Git] Git Summary (작성중) (0) | 2024.05.20 |
---|---|
[Git] commit —amend (0) | 2024.05.20 |
[Git] git add (0) | 2024.05.20 |
[Git] git status (0) | 2024.05.20 |
[Git] init : local repository 생성. (0) | 2024.05.20 |