프로그래밍 관련 도구/Git

Git(objects 파일명의 원리)

benjykim 2017. 7. 30. 08:47
반응형

* 파일의 이름이 결정되는 메커니즘이 무엇을 사용하고 있는지 알아보자.



1. 우선 구글에서 sha1 online을 검색하여 

http://www.sha1-online.com에 접속한다.



2. 화면에서 "hello"를 입력한 뒤 hash를 눌러보자. 


save image

-> hello라고 하는 정보는 hash라는 매커니즘을 통과하면 'aaf4....34d'라는 일정한 길이의 텍스트를 

얻어낼 수 있다.


-> 즉 깃은 'sha1'이라는 해쉬 알고리즘을 통과시켜서 그 파일의 이름을 도출한 다음, 

aaf4...34d(해쉬값)에서 앞 2글자를 따서 aa라는 폴더를 만들고 f4....34d라는 파일을 만들어서 

그 안에다가 hello라는 정보를 저장한다.


(실제로는 hello라는 정보만 들어가는 것이 아니고 부가적인 정보 또한 포함된다.)



* Git의 작동 원리


-> 어떤 파일에 대해서 git add를 하면 깃은 다음과 같이 작동할 것이다.


add한 파일의 내용을 보고 내용(text)이 'a'라고 적혀 있으면

'a'라는 정보와 몇가지 부가적인 정보를 추가해서 그것을 압축한다.


그 압축한 결과를 'sha1'이라는 방법으로 해쉬를 통과시킨다.

통과시킨 후 나오는 값에 해당되는 디렉터리와 파일을 objects라는 디렉터리안에 만들고 

그 안에 'a'라는 정보를 저장한다.


그러고 나서 Index라는 파일에 우리가 만든 파일의 이름을 적어준다. 







*이 포스트는 이고잉님의 '지옥에서 온 Git'강의를 참고하여 작성했습니다.

URL : https://opentutorials.org/course/2708




반응형

'프로그래밍 관련 도구 > Git' 카테고리의 다른 글

Git(branch 정리)  (0) 2017.08.02
Git(git status의 원리)  (0) 2017.07.30
Git(git commit의 원리)  (0) 2017.07.30
Git(git add의 원리)  (0) 2017.07.30
Git(git init,add,status,commit,log,diff,reset 정리)  (0) 2017.07.28