티스토리 뷰
commit
의미 있는 변경 작업들을 저장소에 기록하는 것
git은 변경된 부분만을 추출하여 기록한다. 변경된 내용만을 관리하고, 코드가 변경된 시간에 따라서 저장하는데 이를 commit이라고 한다. commit은 parent commit에 대해 변화된 부분만을 새로운 commit으로 생성하여 시간과 함께 기록한다.
index.html 파일을 새로 생성하고 git status를 터미널에 입력했을 때 Untracked files라고 출력된다. 위의 파일은 git의해 변화가 추적되지 않는다. commit을 위해서는 위의 파일이 추적 가능한 상태가 되어야 하고 git add를 통해서 추적 상태로 변경을 할 수 있다.
git add로 stage 상태로 파일이 변경되었다. git add를 한 뒤에 git status를 입력하면 Changes to be commited라고 출력된다.
git rm --cached 파일명을 입력하여 새로 등록한 파일을 unstage 상태로 변경하였다.
HEAD
HEAD는 commit을 카리키는 일종의 포인터이다. HEAD는 최종 커밋, 즉 parent 커밋을 가리킨다. 이 HEAD 포인터는 한 번 이상의 커밋을 하면 생성된다. 커밋 될 때마다 이동하고, 마지막 커밋을 가리킨다.
스냅샷
git은 스냅샷 방식을 이용하여 변화를 기록한다. 변화된 부분만 찾아 사진을 찍는 것이라는 의미로 스냅샷이라고 표현한다. 이렇게 하면 변경된 파일 전체를 저장할 필요 없이 변경된 부분만을 저장 공간을 적게 차지한다는 장점이 있다. 이 스냅샷은 parent commit과 stage를 비교하여 생성된다.
Git의 커밋은 HEAD와 스테이지간의 차이를 비교하여 새로운 객체를 생성한다.
commit 메시지
commit 명령어로 생성된 객체에 대한 메시지이다. 모든 commit은 메시지를 가진다. 메시지를 작성하지 않으면 commit은 취소가 된다.
git commit 옵션
- -m: 커밋 메시지를 간단하게 작성할 때 사용.
- -a: "git add ."과 같은 동작. 모든 파일을 스테이지에 등록.
- -am: a 옵션과 m 옵션을 합친 것
- --allow-empty-message: 메시지가 없는 커밋을 생성할 때 사용
commit id
git log 명령어를 실행하면 commit 뒤에 숫자와 영문자로 구성된 문자열이 출력되는데 이를 commit id라고 한다. 커밋을 구분하는데 사용된다.
이 커밋은 SHA1이라는 해시 알고리즘을 사용하여 변경된 내용을 기반으로 SHA1 해시키를 생성한다.
commit log
git log 명령어를 입력하여서 commit 로그를 확인할 수 있다.
--pretty=oneline 옵션을 통해서 로그를 한줄로 확인할 수 있다.
git chow + commit_id 명령어를 통해서 commit id의 자세한 내용을 확인할 수도 있다.
git log 옵션
- -p: diff 기능을 같이 포함하여 출력
- --stat: 히스토리 출력
- --pretty=oneline: 커밋을 한 줄로 표시
diff
diff는 commit 간의 차이를 확인할 때 사용하는 명령어이다. 워킹 디렉토리와 스테이지 영역 간 변경 사항을 비교하여 출력한다.
git diff 명령어는 위와 같이 출력된다.
git add 를 통해서 변경 사항을 스테이지에 반영하고 git diff 명령어를 입력하면 스테이지와 워킹 디렉토리에 변경 사항이 없기 때문에 아무것도 출력되지 않는다.
"git comit -v" 명령어를 사용하면 diff의 내용을 추가할 수 있다.
- Total
- Today
- Yesterday
- DGS Framework
- solidity
- pm.expect
- 확장 함수
- 2차 인터뷰
- 1차 인터뷰
- Squash and merge
- graphql
- 네이버 2022 공채
- squash merge
- postman tests
- postman
- github
- Python
- 코딩테스트
- hashcode
- 코틀린
- 주생성자
- Basic Type
- downTo
- git
- java
- Kotlin In Action
- pm.test
- postman collection
- python3
- string
- mysql
- Kotlin
- go 특징
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |