처음부터 차근차근

git add 원리 본문

Git

git add 원리

_soyoung 2021. 9. 29. 16:27
반응형

1. gistory를 실행한 디렉토리에서 내용을 변경하고 git add를 하면 .git의 object파일과 index 파일이 변경된다.

변경됨

index 파일에는 파일의 이름이 들어있고,

objects 파일에는 파일의 내용이 들어있다.

index파일 내용
index 파일 이름 클릭
object 파일 내용

이미지에서 볼 수 있듯이 index안의 파일 이름은 objects 파일의 역슬래쉬 뺀 이름이다.

 

 

 

 

2. git은 파일의 이름이 달라도 파일의 내용이 같으면 같은 오브젝트 파일을 가리킨다.

이러한 git의 내부 메커니즘으로 인해 다른 사람이 file내용을 aaa라고 했을 때와 내가 aaa라고 했을 때 두 가지 경우 모두 같은 파일을 가리킨다.

 

first.txt 파일을 복사해서 third.txt 파일을 만들고(cp first.txt third.txt) git add third.txt를 했다.

first.txt와 third.txt는 같은 object를 가리키고 있다.

 

<이렇게 되는 원리>

git add를 하면 파일의 내용을 sha1이라는 hash알고리즘에 통과시킨다.

그 다음 그 결과(hash값)의 앞에 두 글자를 따서 object 밑에 디렉토리를 만들고 나머지를 그 밑에 디렉토리로 만들어 내용을 저장한다. 

index파일에다는 파일 이름과 함께 hash값을 그대로 저장한다. 

 

+ sha1 사이트 -> http://www.sha1-online.com/

 

 

 

 

 

 

 

참고 : '지옥에서 온 git - 생활코딩' 변형 및 요약

반응형

'Git' 카테고리의 다른 글

branch의 원리와 git log의 원리  (0) 2021.10.01
commit의 원리  (0) 2021.09.30
gistroy 설치  (0) 2021.09.28
Fast-Forward와 stash  (0) 2021.09.27
Branch  (0) 2021.09.24
Comments