alt
Home 커밋의 상태와 .git
Post
Cancel

커밋의 상태와 .git


Commit

: 커밋을 하는 것 == 파일 전체에 대한 것(스냅샷)을 저장한 것

  • .git/objects 에 저장된 모습을 보면 커밋들은 00, 01 .. hash값의 dir + 파일로 이루어져있다.

    image-20220107152108332

  • 결국 파일 전체 하나(스냅샷)를 가리키는 것. 추후 gc로부터 하나의 델타로 변경된다.

  • 하나의 브랜치 또한 하나의 커밋에 대한 참조. -> 수백개의 branch로 관리되어도 성능 저하되지 않는 이유


Git의 상태

: 작업 디렉토리, 스테이지, head 커밋은 상황에 따라 위에 보여지는 하나의 같은 파일을 가리키게 된다.

  • Clean한 상태: 작업 디렉토리 == 스테이지 == HEAD 커밋
  • Modified: 작업 디렉토리 != 스테이지 == 헤드커밋
  • add한 상태: 작업 디렉토리 == 스테이지 != 헤드커밋
  • 커밋한 상태: Clean한 상태


CLI로 확인

  • git ls-files --stage, git ls-tree HEAD 를 찍어보면, stage에 올라온 파일과 HEAD가 참조하는 파일이 같음을 확인할 수 있다.


.git/

: git의 저장소, git으로 관리하는 커밋, 설정 등이 들어있다.

  • log, remote 정보, branch 등의 참조가 있다.

log_directory


  • 이 config에서 수정해주면 git config --list 에서 보이는 설정들이 변경된다.

config



Reference) Honux 라이브 강의

This post is licensed under CC BY 4.0 by the author.