Git 이해의 핵심: 작업 영역과 파일 상태

aksen5240·2024년 1월 12일

Git

목록 보기
2/6
post-thumbnail

📚 Git 이해의 핵심: 작업 영역과 파일 상태

Git의 명령어와 용어에 대해 숙지하는 것도 중요하지만, Git을 이해하기 위해서는 Git의 동작원리를 정확히 이해하는 것 또한 매우 중요하다.

Git의 진정한 힘을 완전히 발휘하기 위해선, Git의 작업 영역과 파일 상태에 대해 명확한 이해가 반드시 선행되어야 한다. 따러서, 이번 글을 통해Git의 핵심 개념인 작업 영역과 파일 상태에 대해 깊이 있게 탐구해보고자 한다.


Git의 작업 영역

Git을 사용할 때 필수적으로 알아야 할 중요한 개념이 바로 Git의 세 가지 주요 작업 영역: working directory, staging area, repository에 대한 이해다. 이 세 영역을 제대로 파악하는 것은 Git을 효과적으로 사용하는 데 있어 매우 중요하다.

📌 Working Directory

Working Directory는 현재 작업 중인 프로젝트의 디렉토리를 의미한다. 여기서는 파일 수정, 새 파일 생성 등의 작업을 한다.

📌 Staging Area

Staging Area는 git add 명령어를 통해 선택한 파일들이 위치하는 곳이다. 이곳에 있는 파일들만이 다음 커밋(commit)에 포함된다. 따라서, 정확한 버전 관리를 위해 어떤 파일을 staging area에 올릴지 결정하는 것이 중요하다.

📌 Repository

Repository는 working directory의 변경 이력들이 저장되는 곳이다. 즉, 커밋들이 저장되는 곳이며, 이곳에서 프로젝트의 전체 역사를 볼 수 있다. 실제로는 프로젝트 디렉토리 내의 숨겨진 .git 디렉토리가 이 repository 역할을 한다.

📌 Git에서 3개 영역의 상호작용

이미지 출처: https://medium.com/@lucasmaurer/git-gud-the-working-tree-staging-area-and-local-repo-a1f0f4822018

Git을 이해하기 위해서는, 이 세 영역의 상호작용을 이해하는 것이 중요하다. Git에서는 working directory에서 작업을 하고, 이를 staging area에 올려 커밋 준비를 한 후, git commit 명령을 통해 repository에 변경 사항을 영구적으로 기록한다.

특히, staging area의 존재는 Git의 강력한 기능 중 하나인데, 이를 통해 세밀한 버전 관리가 가능하게 되는 것이다. 대표적으로, 여러 파일을 수정했더라도 특정 파일만을 다음 커밋에 반영하고 싶을 때 staging area를 활용할 수 있다.

📌 Staging area 활용 예

예시 상황을 통해 Staging area의 강력함에 대해 더욱 자세히 알아보자.

처음에 A.txt와 B.txt 파일을 작성하고, 이들을 모두 staging area에 추가한 상황이라고 가정해보자. 이후 개발자는 git commit -m "Ver_1" 명령을 사용해 이 파일들을 커밋하였다.

그 다음날, 개발자는 A.txt와 B.txt를 수정하지만, A.txt는 이전 모습 그대로 커밋하고 싶은 상황이다. 이런 경우, B.txt만 staging area에 추가하고 git commit -m "Ver_2"를 실행하면 된다.

이렇게 되면 A.txt는 이전 모습 그대로, B.txt는 수정된 모습으로 커밋되게 되며, 이를 통해 개발자는 Staging area를 활용해 세밀한 버전 관리를 할 수 있게 된다.


Git의 파일 상태

📌 파일 상태 이해하기

1.Untracked 상태:

Git이 파일의 변동사항을 추적하지 않는 상태로, 새로 생성된 파일이 git add 명령을 받기 전까지 이 상태에 머무른다.

2. Tracked 상태:

파일이 Git에 의해 추적되고 있는 상태로, 이는 다시 세 가지로 나뉜다.

  • Staged 상태: 파일이 수정된 후 staging area에 올라와 있는 상태.

  • Unmodified 상태: 파일이 최근 커밋과 동일하면 이 상태를 유지.

  • Modified 상태: 최근 커밋 이후 파일에 변동이 생겼을 때의 상태.

📌 상태 변화와 작업 영역

그러면 이러한 파일 상태들을, 상태 변화와 연관지어 같이 살펴보자.

이미지 출처: https://codetej.in/4-gits-file-status-lifecycle/
  • Add the file: 파일을 처음 생성하고 git add를 실행하면 Untracked에서 Staged 상태로 전환된다.

  • Edit the file: 최신 커밋과 비교하여 차이가 없는 Unmodified 상태의 파일을 수정하면 Modified 상태가 된다.

  • Stage the file: Modified 상태의 파일에 git add를 적용하면 다시 Staged 상태가 된다.

  • Commit: git commit을 실행하면 staging area의 파일들이 커밋에 반영되며, 모든 파일들이 Unmodified 상태가 된다.

  • Remove the file: 파일을 삭제하면, Git에서 이를 인식하지 못하게 되고, 이에 따라 Untracked 상태가 된다.


Outro

이러한 파일 상태와 작업 영역의 이해는 Git을 통한 효율적인 버전 관리에 핵심적이다. 파일의 상태를 정확히 알고 있어야 어떤 파일을 커밋에 포함시킬지, 어떤 파일을 다음 단계로 넘겨야 할지 결정할 수 있다. 또한, 이는 팀 프로젝트에서의 협업 또는 개인 프로젝트에서의 체계적인 관리에 있어서 매우 중요하다.

이러한 개념을 정확하게 숙지하고, Git을 정확하고 효율적으로 사용하는 개발자로 나아가자 🔥

profile
Tags of Taeryong's Study🌱

0개의 댓글