index / object
.git의 원리
python 설치
cmd 에서 pip install gistory 명령어로 gistory 설치
git bash로 .git이 있는 디렉토리에서 gistory실행하자 Please execute in .git directory 라는 문구 뜸
gistory .git으로 실행함
실행 후 localhost:8805 로 접속
gistory 끌 때 : ctrl+c
** 상위 경로로 이동할 때 cd ..
.git 안에있는 파일들. 이 파이들에대해 알아보자!
디렉토리에 f1.txt파일 추가 후 gistory를 보면 아무런 변화가 없음!
=>파일을 생성하기만하면 git에서 관여 할 부분이 없기때문
git add
생성한 파일을 add 후 gistory를 보면 index와 objects가 새로 생김
index : 각각의 파일명과 파일명에대한 정보가 있다
objects : 객체들의 내용에 대한 정보가 있다
1) f1.txt add
index와 objects에 f1.txt에대한 정보가 생성
2) f2.txt add
index와 objects에 f2.txt에대한 정보가 생성
3) f1.txt를 copy 한 f3.txt 생성 후 add
***git은 파일을 저장할 때 파일 명이 달라도 내용이 같으면 같은 object파일을 가리킨다
==> 중복파일관리에 용이함
그리고 이것은 내가 생성한 파일에 국한되는것이아니다
objects 파일명
SHA1 Online 접속
검색창에 입력하면 hash알고리즘을 통하여 text를 얻는다. text 중 앞 두글자를 따서 objects아래 디렉토리를 만들고, 그 아래 f4~4d에 해당하는 파일을 만들어서 그 안에 hello라는 정보를 저장한다
따라서 git add를 하게되면 git은 add되는 정보를 확인하고 hash알고리즘을 거쳐 고유 index값을 부여한다
index에는 내가 지정한 파일명+index
objects에는 index에 담긴 정보가 있다
commit
commit 또한 object로 관리된다
tree: 버전에 해당하는 파일의 이름과 index를 확인할 수 있다
f2.txt 수정 후 commit
commit object에 이전 commit과 최근 commit에 대한 정보가 담겨져있다
tree에는 commit한 시점의 정보들이 담겨져있기때문에 tree를 통해 버전에 대한 정보를 알 수 있다
**object는 크게 세가지 종류가 있다: tree, commit, blob
출처: 생활코딩