깃은 내부적으로 크게 3가지 종류의 작업 영역을 두고 동작.

  1. working directory
  2. staging area
  3. repository

 

working directory는 작업을 하는 프로젝트 디렉토리로

위의 작업중인 나의 깃 저장소에서 보자면 MathTool 디렉토리가 working directory

https://project-angieangel.tistory.com/71

 

깃 기초

깃을 시작한다. 깃 먼저 다져보고 차차 깃허브를 세심하게 어루만져보려고 한다. 일단, 깃은 아래 사이트에서 다운받으면 되는데 https://git-scm.com/ Git git-scm.com 깃을 다운받는 것은 적당히 생략하

project-angieangel.tistory.com

 

staging areagit add를 한 파일들이 존재하는 영역으로 커밋을 하게되면 staging area에 있는 파일들만 커밋에 반영

repository는 working directory의 변경 이력들이 저장되어 있는 영역. 즉, 커밋들이 저장되는 영역

흐름을 타보면

  • working directory에서 뭔가 작업을 하고,
  • 작업한 파일들을 git add 해주고,
  • 커밋을 하면 staging area에 있던 파일들의 모습이 마치 영화의 한 장면, 스냅샷(snapshot)처럼 이 repository에 저장된다. (실제로 MathTool 디렉토리안에 숨겨진 .git 디텍도리가 바로 repository이다.)

참고로 working directory는 working tree라고 하기도 하고, staging area는 index라고 할 때도 있다.

 

 

추가) 영역별 명령 관계

 

 

하나더) staging area가 굳이 왜 필요한 이유?

더보기

working directory에서 작업을 하고 git add할 필요없이 바로 커밋해버리는 구조가 더 편할 것 같지만 꼭 그렇지는 않습니다. 만약 A.txt와 B.txt 파일을 둘다 수정했더라도 두 파일 모두 그 최신 모습을 다음 커밋에 반영하고 싶지 않을 수도 있습니다. 방금처럼 B.txt의 최신 모습만 그 다음 커밋에 반영하고 싶을 수도 있는 거죠. 이런 상황은 실제로 꽤 자주 있습니다. 만약 staging area가 없다면 원하는 것들만 선별적으로 커밋에 반영할 수 없게 됩니다. 그럼 좀더 세밀한 버전 관리를 할 수 없게 되는 거죠. 왜 staging area가 필요한지 알겠죠?

 

'EDU > codeIt' 카테고리의 다른 글

깃 상태 기초  (0) 2021.09.14
깃 기초2  (0) 2021.09.14
SQL 실무 시작 전, 확인하기  (0) 2021.08.25
MySQL) error_code 1175: UPDATE가 안될 때  (0) 2021.08.24
코드잇 9기 참여  (1) 2021.08.05

+ Recent posts