티스토리 뷰
Git의 Database
🔥 깃 (Git) 의 내부에는 Key-Value 데이터베이스가 존재하고 이러한 데이터베이스에는 모든 종류의 콘텐츠를 저장할 수 있다.
𝌞 모든 종류의 콘텐츠 𝌞
- Git의 Commit 내용
- Git이 관리하는 폴더 명
- Git이 관리하는 파일 명
- Git이 관리하는 파일 내용
- …
💡 모든 형태의 데이터는 해쉬 함수를 거쳐 해시 값을 Key로 하여 Key-Value로 저장한다. 동일한 데이터의 경우 하나 만 저장되기 때문에 데이터를 효율적으로 구성할 수 있다. Git이 많은 커밋을 모두 저장 하면서도 데이터를 가볍게 가져갈 수 있는 방법이다.
🤔 Git의 데이터 베이스는 데이터가 안전하게 보관될 수 있도록 수정(Update)•삭제(Delete)는 제공하지 않고 검색•추가만 가능하다
Git의 커밋 ( Commit )
커밋(Commit) 에 포함되는 데이터
- 메타 데이터 ( 커밋 메시지, 이메일, 날짜•시간 )
- 프로젝트 스냅샷 hash 값
- 부모 커밋의 hash 값
% git log
- Commit Hash Value 확인
% git cat-file -p commit-hash-value
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent b3a5b79e7499a94886f83bf816ddf90db15d6045
author Hero <81640511+icraft2170@users.noreply.github.com> 1663074190 +0900
committer Hero <81640511+icraft2170@users.noreply.github.com> 1663074190 +0900
Commit Hash 값으로 Commit 복구하기(Reset)
git reset --hard 0397f09
💡 reset(복구) 메커니즘
- 커밋에 해시 값으로 커밋 정보를 찾는다.
- 커밋 정보에 있는 Root Directory의 해시 값으로 해당 디렉터리를 찾는다.
- Root Directory에 값에서 각 Directory를 찾는다
- 같은 메커니즘으로 반복
참조
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Session
- OOP
- pass by value
- java
- 수직 분할
- 장애 해결기
- ATDD
- Clean Architecture
- Sticky Session
- 정적 타입 언어
- 클린 아키텍처
- pass by reference
- 세션 불일치
- 뾰족함
- 내부 단편화
- 객체 풀
- 메모리 단편화
- Object Pool
- 육각형 아키텍처
- multimap
- 컴포짓 패턴
- 수평 분할
- 외부 단편화
- 동적 디스패치
- pool
- SpringBoot 2.2
- RestAssured
- Memory Fragmentation
- 메모리 파편화
- 동적 타입 언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함