#10 Git : 원리 - add

김현준·2022년 10월 1일
0

GIT

목록 보기
10/41
post-thumbnail

📌 Git 에서 add 명령어는 어떤 원리로 동작할까?

이번에는 add 명령어의 동작 원리에 대해 알아보겠습니다.

cd Documents 로 현재 위치를 옮겨준 뒤 mkdir git_2 이라는 새로운 폴더를 만들어 줍니다.

이후 이 디렉토리를 git 저장소로 쓸것이기 때문에 git init 명령어를 사용해줍니다.

cd .git 을 통해 .git 파일 안으로 들어가보겠습니다.

여기있는 파일들의 역할을 하나하나씩 알아가는 것이 Git 의 내부를 이해하는데 핵심적인 요소입니다. 하지만 직접 알아가는것은 힘들기 때문에 gistory 라는 프로그램을 사용합니다.

gistory 명령을 실행시킨후

웹 브라우저에서 localhost:8805 를 입력해줍니다.

이 파일들의 목록은 아까 살펴보았던 .git 폴더 안에 내용과 동일합니다.

지금 실행중인 git bash 는 더이상 명령어를 사용할 수 없으므로 새로운 git bash 를 하나 더 실행해줍니다.
만약 종료하고싶다면 Ctrl + C 를 눌러주시면 됩니다.

새로 실행시킨 git bash 에서 오늘 새로만든 git 저장소로 이동해준 뒤 f1.txt 파일을 만들어 보겠습니다.

이후 localhost:8805 를 새로고침하면 아무런 변화가 없습니다.

이번에는 add 명령을 써보겠습니다.

indexobject 라는 2개의 파일이 새로 만들어졌습니다.

object 파일을 클릭해보면 아까 작성했던 a 라는 문자가 담겨있습니다. 하지만 이런 문구가 적혀 있습니다.

  • f1.txt (This information was not included the original message)

object 에서는 단지 a라는 문자만 저장할뿐이고 a라는 문자가 담긴 파일의 이름을 저장하진 않습니다.

그것은 바로 index 안에 저장되어있습니다.

  • index 에는 파일의 이름이 들어가고 object(객체) 에는 파일의 내용이 들어갑니다.

f2.txt 파일을 새로 만든후 add 해보겠습니다.

object 파일이 하나 더 생성된 후 index 에서 f2.txt 파일을 볼 수 있습니다.

cp 명령어를 통해 f1.txtf3.txt 로 복사한후 add 해보겠습니다.

브라우저를 새로고침 해보면 object 파일은 새로 늘어났지 않았습니다.
하지만 f1.txtf3.txt78981922613b2afb6025042ff6bd878ac1994e85 라는
동일한 object 를 가르킵니다.

💡 즉 git 은 어떠한 파일을 저장할때 파일의 이름이 달라도 내용이 같으면 같은 object 를 가르킵니다.

다음에는 object 파일명의 원리에 대해 알아보겠습니다.

profile
울산대학교 IT융합학부 22학번

0개의 댓글