일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 웹소켓연결끊김
- 웹소켓연결
- Database
- 클라우드
- openaiapi
- gitlab
- 호스팅영역
- nvmrc
- gpt3.5turbo
- 버킷생성
- chatGPTAPI
- db
- ChatGPT
- javascript
- git
- nodejs
- 클래스
- aiapi
- 패키지설치에러
- 노드버전
- java
- 웹소켓재시작
- class
- 자바
- Github
- aws
- GPT3.5
- iam사용자
- gptapi
- Express
Archives
- Today
- Total
IT's Jenna
CH 9. Git 내부 동작 원리 본문
1. git add 명령의 동작 원리
동작원리 확인 명령어 : 저수준(low level) 명령어
git status : 워킹트리, 스테이지, HEAD 커밋 세 가지 저장 공간의 차이를 비교
git hash-object 파일명 : 해시 체크섬 확인, 같은 내용의 파일인 경우 늘 같은 값이 나옴, 값이 다르면 텍스트가 다른 것
git add 명령시
체크섬 값과 동일한 이름을 가지는 blob(binary large object)객체가 생성됨
객체는 .git/objects 파일에 저장, 스테이지 내용은 .git/index에 기록됨
2. git commit 명령의 동작 원리
git status했을 때 clean 하다는 것은 워킹트리, 스테이지, HEAD의 내용이 모두 똑같다는 것!
커밋하면 스테이지의 객체로 tree 객체 생성
커밋에는 커밋 메시지와 tree 객체 포함
3. 커밋 객체 살펴보기
커밋 순서
- 트리 객체 생성
- HEAD 갱신 (이전 HEAD를 부모로 하는 커밋 객체 생성 후 새로운 커밋을 HEAD로 지정)
중복 파일 관리
blob 객체는 내용이 같으면 같은 체크섬을 가지기 때문에 수정한 내용이 같으면 같은 내용의 체크섬을 가질 수 있음
커밋을 여러개 만들거나 같은 파일을 다른 폴더에 복사해서 여러개 만드는 경우라도 파일 내용이 같으면 하나의 blob 객체로 관리됨
-> 사용자들은 신경쓸 필요 없음, git이 알아서 중복 파일들을 동일한 blob 객체로 처리하는 것!
4. 브랜치 작업 동작 원리
브랜치는 커밋의 참조일 뿐!
브랜치 생성하면 .git/refs/heads 위치에 브랜치 명의 파일이 하나 생성되는 것 뿐
브랜치 삭제하면 해당 파일이 삭제됨
git switch 순서
- .git/HEAD 파일을 수정하여 참조하는 브랜치를 변경
- 스테이지와 워킹트리를 HEAD가 가리키는 커밋과 동일한 내용으로 변경하는 것
5. 9장 요약
'Git > 팀 개발을 위한 Git, GitHub 시작하기' 카테고리의 다른 글
CH 8. CLI 환경에서 브랜치 생성 및 조작하기 (0) | 2024.08.19 |
---|---|
CH 7-2. 기본 Git 명령어 (0) | 2024.08.19 |
CH 7-1. CLI 환경에서 Git 명령어 살펴보기 (0) | 2024.08.19 |
CH 6. GitHub 100% 활용하기 (0) | 2024.08.12 |
CH 5. 실무 사례와 함께 Git 다루기 (0) | 2024.08.12 |
Comments