-
[Git] Git 명령어 동작 원리Computer Science/비전공자를 위한 IT 개념정리 2024. 12. 12. 12:53반응형
Git 이란
Git is free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
- 깃은 소스코드를 효과적으로 처리하도록 설계된 무료 오픈소스 소프트웨어
- 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율
GIT INIT
- 터미널에서 git init 명령어를 입력하면 .git 디렉토리 생성됨
- HEAD: 현재 체크아웃된 브랜치를 가리키는 파일
- refs: 브랜치, 태그와 같은 참조들을 저장하는 폴더
- index: 메타 데이터와 오브젝트 데이터 저장하는 폴더
- objects: 모든 데이터를 저장하는 폴더. 이 디렉토리에 여러 객체를 저장한다.
- tree: 커밋 시점의 인덱스의 스냅샷
- commit: 커밋 정보가 들어있는 객체
- blob: 파일 정보가 들어있는 객체. 해시 알고리즘의 결과 기준으로 파일 생성. 우리가 작성한 소스코드가 파일 내용이 됨
GIT ADD
- 작업 디렉토리에 있는 파일들이 변경되면 GIT이 감지
git add test1.txt
git add test2.txt
- 같은 내용을 커밋한다면?
- 같은 내용을 담고 있다면 같은 해시값이 나온다. 인덱스에는 추가되지만 objects에는 추가되지 않는다.
GIT COMMIT
- 인덱스 내용을 바탕으로 새로운 버전 생성
- SNAPSHOT: COMMIT 시 그 시점의 정보(INDEX에 있는 파일)을 트리에 저장
- GIT COMMIT 의 PARENT는 이전 커밋을 가리킴. 즉 각 버전(COMMIT)마다 다른 TREE를 담고 있음
GIT STATUS (상태 변경 추적)
- 로컬 작업과 인덱스, 커밋 트리 3개를 비교하며 변경사항을 보여준다.
GIT BRANCH
- 버전 관리 시스템에서 여러 갈래로 퍼지는 데이터 흐름
- 브랜치는 refs/heads 폴더 안의 파일 하나로 관리
참고
- 우아한 테크톡: 해시, 다르의 깃 명령어 동작 원리
반응형'Computer Science > 비전공자를 위한 IT 개념정리' 카테고리의 다른 글
비전공자를 위한 IT 용어 정리 - 프로그램과 프로그래밍이란 (0) 2020.12.27