* git bash에서 작업한 내용입니다.
1. mkdir gitfth2
2. git init
3. vim f1.txt (text : 'a' 입력) //t1.txt를 만든 뒤 git add를 하지 않으면 gistory에 반영되지 않는다.
4. git add f1.txt //이 명령(add) 이후부터 gistory에 f1.txt의 내용이 반영된다.
5. vim f2.txt (text : 'z' 입력)
6. git add f2.txt
7. cp f1.txt f3.txt
8. git add f3.txt
* 1~8의 명령을 수행한 뒤 gistory 화면 결과
* 1번째 오브젝트를 클릭한 결과
(\78\981922..........4e85는 78번 디렉터리에 있는 981.....e85파일을 의미한다._
* 2번째 오브젝트를 클릭한 결과는 위의 사진과 같이 z 내용이 출력되고
그 아래 f2.txt가 출력된다. (사진 생략)
* Index를 클릭한 결과
->여기에서 주의해야할 점은 f1.txt와 f3.txt는 같은 오브젝트를 가리키고 있다
깃은 어떤 파일을 저장할 때 파일의 이름이 달라도 파일의 내용이 같으면
같은 오브젝트 파일을 가리킨다.
1만개의 파일이 있는데 파일들의 내용이 모두 똑같다면
1만개의 파일은 똑같은 오브젝트 파일을 가리킨다. (*중요*)
(깃은 위와 같은 경우에 생길 수 있는 어마어마한 중복을 제거한다.)
그러면 깃은 어떻게 내용이 같으면 파일의 이름이 같을까?(추후 공부할 예정)
그리고 여러분의 만든 파일의 text내용이 a라면 그 파일이 저장되어있는 오브젝트의 이름도 7898...e85이다.
(실제 파일상으로는 78디렉터리에 98로 시작하는 파일명에 담겨있게 될 것이다.)
즉, 내용이 같다면 내가 혹은 아무개가 작성하든 간에 이름이 7898...e85이 된다!
*이 포스트는 이고잉님의 '지옥에서 온 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(objects 파일명의 원리) (0) | 2017.07.30 |
Git(git init,add,status,commit,log,diff,reset 정리) (0) | 2017.07.28 |