git의 핵심은 뭘까?

AtoZ·2023년 5월 7일
0

git

목록 보기
1/2

🤔 개요

안녕하세요😀
실무에서 git을 많이 사용하지만 실제 git에 대해 단편적인 부분만 알고 있는 것 같아 git에 대해 깊이 알 필요를 느꼈습니다.
그와 동시에 저와 같은 분들에게 git을 쉽고 깊게 이해할 수 있도록 내용을 공유합니다.

📌 git은 여기서부터 시작한다.

조금 거창한 제목이지만 그래도 위의 그림에 대해 알고 있으면 git을 이해하기에 많은 도움이 된다고 생각합니다. 실제 개인적으로 이 부분을 알고 git을 사용했을 때 훨씬 이해하기 쉬웠습니다.
일단 git은 크게 3가지 영역으로 분류됩니다.

  1. Working directory
  2. Staging area
  3. Repository

각각 어떤 영역인지 살펴보겠습니다.

🔍 Working directory

첫 번째 Working directory은 실제 local에서 작업되는 Directory라고 이해하시면 될 것 같습니다.
Working directory은 다시 UntrackedTracked로 나누어지는데 나누어지는 기준은 git이 해당 파일을 Tracking 하고 있는지입니다. 쉽게 말하면 해당 파일을 git이 관리한 적이 있는지입니다.

  • untracked : 아직 tracking 되지 않은 파일
  • tracked : 이미 git이 tracking 한 파일(Repository에 저장한 이력이 있는 파일)

그렇다면. gitignore 파일에 명시되어 있는 파일은 어느 쪽에 속할까요?

정답은 어느 쪽에도 속하지 않습니다. .gitignore에 명시된 파일은 git이 아예 인식하지 않기 때문에 어느 영역에도 속하지 않습니다.

🔍 Staging area

그럼 이렇게 local에서 작업하던 파일을 git add를 하게 되면 Staging area에 추가됩니다
Staging areaRepository에 저장할 파일을 선별하여 두는 영역으로 이해하시면 좋을 것 같습니다. 이 부분을 다르게 말하면 Repository에 저장하려면 Staging area을 거쳐야 한다는 뜻이 되기도 합니다.

🔍 Repository

그 상태에서 git commit이라는 명령어를 통해 현재 시점을 Repository에 저장합니다.
이것을 스냅샷이라고 하는데 이 부분은 다음 SVN vs GIT 비교하는 포스팅에서 조금 더 깊게 다뤄보겠습니다. 일단은 git은 스냅샷 방식으로 저장된다 정도로 인지하고 있으면 좋을 것 같습니다.

🫡 마무리

일단 간단하게 git의 기본 개념을 알아보았습니다. 저는 개인적으로 이 부분이 제일 중요하다고 생각합니다. 이 부분을 이해하면 다음에 포스팅되는 여러 git 명령어들을 이해하는 데 도움이 될 거라고 생각합니다. 그러면 다음 포스팅으로 찾아뵙겠습니다.

profile
코딩으로 글쓰는 작가

0개의 댓글