이번 시간에는
https://ebang.tistory.com/31 << 2. 깃 입문 - 깃의 사용(git init, add, commit)에 이은 시간이다.
<학습목표>
오늘은 git commit을 하는 법, 수정하는 간단한 방법과
git commit 한 히스토리를 살펴볼 수 있는 git log,
그리고 git ignore에 대해서 살펴볼 것이다.
1. git commit
1. git commit :
변화들을 묶어서 '한 변화'를 만들어내는 과정이다.
2. Atomic commits :
변화 중에서 가장 작은 소단위로 commit을 해야한다는 의미이다.
code Review를 하거나 commit을 되돌리기 할 때 매우 편리하므로 이렇게 하는 것을 매우 추천한다.
3. present tense :
관습적으로, 그리고 git에서 공식적으로 추천하는 방법으로 git commit 메세지를 작성할 때는 현제 시제를 사용하라고 한다.
반드시 필수인 것은 아니나 협업을 진행할 때 이렇게 한다면 통일 될 수는 있을 것 같다.
이 방법을 사용하면, 마치 메세지를 읽으면 그 메세지를 명령으로 받아들이고 코드가 변한다는 듯이 해석하면 편하다.
예를 들어,
"create new board" 라는 commit message를 작성했다면
실제로는 "I just created new board ", "내가 막 new board를 생성했어" 의 의미이지만, create new board라고 읽으면 마치 코드가 그렇게 되었다는 듯이 이해하게 된다.
4. git commit message 기본 편집기
git site에서 command를 복사, 붙여넣기 하면 기본 편집기를 sublime text, VS code등 원하는 것으로 바꿀 수 있다.
(https://git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Setup-and-Config. )
5. Amending Commits
commit했던 내용을 바꿀 수 있다.
단, 복잡한 것은 아직 배우지 않고 이 방법은 바로 직전의 commit만 되돌리는 방법이다.
만약 한 파일을 까먹고 commit했다면,
git add <잊은 파일>
git commit --amend
명령어로 commit을 수정할 수 있다. commit 메세지도 아래처럼 수정할 수 있다.
git commit -m --amend "new message"
2. git log
git log
명령어를 사용하면, 현재 commit 했던 내용들이 보여진다.
그 형식은
commit 9bcdfd1ac7edd49737fd5ed65c467279b956779f (HEAD -> grocery)
Author: ebang <email>
Date: Sat Dec 31 14:32:25 2022 +0900
add grocery list
commit 6d964b6ba2c34c3afec773g5b5ee9ba2b45ce8e4
Author: ebang <email>
Date: Sat Dec 31 14:31:06 2022 +0900
add gardening list
commit 9e8946f3603dd5a406f1e49d5ccbfb81a42bd469 (main)
Author: ebang <email>
Date: Sat Dec 31 14:28:32 2022 +0900
add empty shopping file
위와 같다.
commit은 총 3번했고, 각 커밋은
[커밋의 형식]
commit <해쉬값>
Author : commit을 한 사람
Date: commit을 한 날짜
"commit message"
의 형식으로 되어 있다.
해쉬값은 뭔지는 나중에 알아볼 것이고,
위와 같은 형식으로 commit 히스토리를 본다고 알면된다.
위의 경우를 해석해보면,
1. ebang이라는 사람이 12. 31일 14:28 에 "add empty shopping file"을 했다. 옆에는 main이라고 적혀있는데 이것은 branch이름이다. (다음에 알아보도록 하자. )
2. ebang이라는 사람이 12. 31일 14:31에 "add gardeing list"를 했다.
3. ebang이라는 사람이 12.31일 14:32에 "add grocery list"를 했다. 옆에는 (HEAD -> grocery)라고 적혀잇는데 이건 다다음시간에 알아본다.
ebang 이라는 사람은 2022년 마지막 날까지 열심히 커밋을 했구나 , 라는 걸 알 수 있다.
그런데 이 git log 명령어는 commit 메세지를 모두 보여준다.
지금까지는 한 줄 짜리 짧은 메세지였지만, 너무 긴 메세지라면 한줄만 보면서 여러 histoy를 보는 것이 훨씬 간편할 지도 모른다.
그래서 이런 명령어를 사용한다.
[git log 메세지 간단하게 출력하기]
git log --oneline
git log --pretty=online--abbrev-commit
--abbrev-commit 옵션은 hash값이 짧게 보이는 것이고,
--pretty=online 옵션은 메세지를 한줄만 보이는 옵션이다.
그래서 commit 메세지를 작성할 때 특히 가장 첫줄엔 commit 내용의 요약이 있는 것이 중요하다.
3. git ignore
프로젝트를 만들어서 git을 사용해 버전을 관리하다 보면, git이 굳이 그 변화를 파악하지 않았으면 하는 파일들이 있다.
운영체제 관련한 파일들 (Mac의 .DS_Store), 기밀 문서, 또는 앱의 package 등이 그런 것들이다.
그런 것들을 없애기 위해 .gitIgnore라는 파일이 존재한다.
이 파일 안에
.DS_Store
folderName/
'.c
이런 식으로 작성할 수 있다.
folderName/ 처럼 폴더이름 + '/'을 쓸수도 있고,
.c로 끝나는 모든 파일을 무시하고 싶다면 와일드카드인 ' 문자를 써서 '.c 라고 적어 놓을 수도 있다.
특정언어를 사용할 때 패키지명들을 무시하기 위해 기본적으로 무시할 파일들의 나열이 적힌
템플릿도 있다 .
>> gitIgnore.io를 검색해보면 된다.
여기까지 git commit , git ignore, git log에 대해 알아보았다.
다음시간에는 git branch, branch 사용법에 대해 알아볼 것이다.
'개발 > .git' 카테고리의 다른 글
git 에 실수로 올렸던 .env 파일 내리기 (2) | 2023.07.06 |
---|---|
[ git 입문 1 ]- 깃이란? (깃 개념, 터미널, 터미널에서 커밋하기) (1) | 2022.12.31 |
[깃 입문 2]- 깃의 사용( git init, add, commit ) (0) | 2022.12.31 |