ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 폴더 안의 파일 하나로 관리

    참고

    • 우아한 테크톡: 해시, 다르의 깃 명령어 동작 원리
    반응형
Designed by Tistory.