Alraffe
이것 저것 개발.
Alraffe
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • Front-end
      • CSS
      • React
      • Next.js
    • Back-end
    • Book
      • Effective Typescript

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 이펙티브타입스크립트
  • TypeScript
  • 프론트엔드
  • vite 배포 에러
  • JASON.stringify
  • JS
  • object 값을 찍고 싶을 떄
  • 개발자 커피챗
  • 프론트엔드 책 추천
  • 타입스크립트 책 추천
  • JASON.parse()
  • JavaScript
  • 자바스크립트
  • 프론트엔드회고
  • vite 깃헙 배포
  • 오랠리
  • 주니어 개발자 이력서
  • 깃헙 배포 빈 화면
  • Til
  • evnentBubbling
  • 타입스크립트 추천
  • 노션 이력서
  • react
  • frontend
  • 타입스크립트 책
  • 배포 에러
  • git
  • 리액트
  • next14
  • 타입스크립트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Alraffe

이것 저것 개발.

git의 원리
TIL

git의 원리

2023. 8. 17. 01:20

 

git add

 

 git add 명령을 실행하면 최상단에 해당 오브젝트가 생성됨과 동시에 index라는 파일에 add한 파일에 대한 오브젝트가 생성된다. 이 때 만약 파일 안에 내용이 같을 경우 index 안에서는 같은 오브젝트를 바라보게 된다(상단 오른쪽 이미지 참조). 그 이유는 뭘까? git은 파일이름을 정하는 원리는 SHA-1이라는 해쉬알고리즘을 이용해 압축된 파일 내용을 변환한다. 따라서 파일 내용이 같으면 같은 git 파일 명이 나오게 된다.

 


git commit

 commit을 하면 index에 있던 내용이 담긴 오브젝트(tree)를 담아서 새로운 오브젝트를 생성하게 된다. 만약 기존의 내용을 수정해서 commit 한다면 tree와 parent를 확인할 수 있다. tree는 내용이 바뀐 현재 상태의 내용들을 담고 있는 오브젝트를 의미하고 parent는 그 전의 오브젝트를 의미한다.

 


git status

 검색하거나 공부할 때 중요한 개념이 working directory / index, staging area, cache / repository 가 있다. working directory는  현재 작업중인 로컬을 의미한다. index, staging area, cache는 같은 곳을 의미하는데 사용자가 add하면 파일이 생성되는 곳을 의미한다. 여기서 repository란 원격 저장소를 의미한다.

git status 명령어를 입력하면 이 세장소의 압축된 내용을 의미하는 해쉬값을 비교해 현재 상태를 알려주게 된다.

 

 

 

 

참조
지옥에서 온 Git
저작자표시 비영리 변경금지

'TIL' 카테고리의 다른 글

Git의 원리  (0) 2023.08.28
Git branch  (0) 2023.08.21
공부한 git 사용법에 대한 정리  (0) 2023.08.17
console.log()로 [object]를 찍고 싶을 때  (0) 2023.07.25
    'TIL' 카테고리의 다른 글
    • Git의 원리
    • Git branch
    • 공부한 git 사용법에 대한 정리
    • console.log()로 [object]를 찍고 싶을 때
    Alraffe
    Alraffe

    티스토리툴바