Git

Git을 이용한 버전 관리: Git의 3가지 영역

코딩 코디네이터 2025. 3. 17. 12:00
반응형

Git을 이용한 버전 관리: Git의 3가지 영역 🚀

Git을 사용하면 프로젝트의 모든 변경 사항을 효과적으로 관리할 수 있습니다. 
하지만, Git의 3가지 영역을 정확히 이해하지 못하면 Git의 강력한 기능을 온전히 활용하기 어렵습니다!
이번 가이드에서는 Git의 3가지 핵심 영역(작업 디렉터리, 스테이징 영역, 로컬 저장소)을 상세히 설명하고, 실전 예제와 함께 초보자도 쉽게 따라할 수 있도록 구성하였습니다. 🎯"

 

 

안녕하세요, 여러분! 😊

Git을 제대로 사용하려면, Git의 3가지 핵심 영역을 정확히 이해하는 것이 중요합니다!

이 글에서는 Git의 핵심 개념을 실전 예제와 함께 쉽게 설명해드리겠습니다.

이제 Git을 확실히 이해하고, 버전 관리를 자유롭게 활용해봅시다! 🚀

1. 작업 디렉터리(Working Directory)란? 🛠️

Git을 사용하면 프로젝트의 모든 파일과 변경 사항을 체계적으로 관리할 수 있습니다.

하지만 Git을 처음 접하는 초보자들이 가장 많이 헷갈리는 개념이 바로 작업 디렉터리(Working Directory)입니다.

 

작업 디렉터리란?
작업 디렉터리(Working Directory)사용자가 실제로 파일을 생성하고 수정하는 공간을 의미합니다.

쉽게 말해, 현재 작업 중인 폴더를 뜻하며, 이곳에서 파일을 편집하고 새로운 파일을 추가할 수 있습니다.

🔍 작업 디렉터리의 역할

  • 사용자가 파일을 수정하는 공간 – 코드를 작성하고 파일을 추가하는 영역입니다.
  • Git이 변경 사항을 추적하는 곳 – Git은 작업 디렉터리에서 변경된 파일을 감지합니다.
  • Git에 추가되지 않은 파일(Untracked Files) 존재 – 새 파일을 만들면 Git은 이를 자동으로 추적하지 않습니다.

 

🖥️ 실전 예제: 작업 디렉터리에서 변경 사항 확인하기

예제 프로젝트에서 새로운 파일을 생성하고 변경 사항을 확인하는 과정을 실습해 봅시다.

# 1️⃣ 새로운 Git 프로젝트 초기화
$ mkdir my_project
$ cd my_project
$ git init

# 2️⃣ 새로운 파일 생성
$ echo "Hello Git" > hello.txt

# 3️⃣ Git 상태 확인
$ git status

 

git status 명령어를 실행하면, Git이 hello.txt 파일을 추적하지 않는(Untracked) 상태임을 확인할 수 있습니다.

On branch main
Untracked files:
  (use "git add ..." to include in what will be committed)
        hello.txt

nothing added to commit but untracked files present

 

🚀 Git이 변경 사항을 추적하는 과정

Git은 작업 디렉터리에서 변경된 파일을 감지하지만, 이 파일이 Git에 추가되지 않으면(Untracked) 버전 관리 대상이 아닙니다.

📌 상태 💡 설명
Untracked Git이 추적하지 않는 파일 (Git에 추가되지 않음)
Modified 파일이 수정되었지만, 아직 Git에 반영되지 않음

Git에서 변경 사항을 관리하려면 스테이징 영역(Staging Area)에 추가 하는 단계가 필요합니다.

이 과정은 다음 섹션에서 자세히 설명하겠습니다. 😊

 

2. 스테이징 영역(Staging Area)란? 📌

Git에서 변경된 파일을 즉시 로컬 저장소(Local Repository)에 반영하지 않는 이유는 무엇일까요?

바로 스테이징 영역(Staging Area)을 활용하여 보다 체계적이고 안전한 버전 관리를 하기 위해서입니다.

 

스테이징 영역이란?
스테이징 영역Git이 변경 사항을 커밋하기 전에 준비하는 공간입니다.

즉, 사용자가 변경한 파일을 로컬 저장소에 저장하기 전, 어떤 파일을 포함할 것인지 선택할 수 있는 중간 단계입니다.

🔍 스테이징 영역의 역할

  • 변경된 파일을 로컬 저장소에 커밋하기 전에 임시 저장하는 공간입니다.
  • 커밋할 파일을 선택적으로 추가하여, 특정 변경 사항만 커밋할 수 있도록 도와줍니다.
  • 의도치 않은 변경 사항을 커밋하는 실수를 방지할 수 있습니다.

🖥️ 실전 예제: 파일을 스테이징 영역에 추가하기

이제 변경된 파일을 스테이징 영역에 추가하고 상태를 확인하는 과정을 실습해 보겠습니다.

# 1️⃣ 변경 사항 확인
$ git status

# 2️⃣ 변경된 파일을 스테이징 영역에 추가
$ git add hello.txt

# 3️⃣ 다시 상태 확인
$ git status

 

이제 git status를 실행하면 **hello.txt 파일이 스테이징 영역에 추가된 것**을 확인할 수 있습니다.

Changes to be committed:
  (use "git restore --staged ..." to unstage)
        new file:   hello.txt

🚀 여러 개의 파일을 한 번에 추가하기

# 현재 디렉터리의 모든 파일을 스테이징 영역에 추가
$ git add .

# 특정 확장자의 파일만 추가
$ git add *.txt

 

주의:

git add .는 현재 디렉터리의 모든 변경 사항을 스테이징 영역에 추가합니다.

때로는 원치 않는 파일도 포함될 수 있으므로 신중히 사용하세요!

🛠️ 스테이징 영역에서 파일 제거하기

스테이징 영역에 추가한 파일을 다시 제외하고 싶다면 git restore --staged 명령어를 사용합니다.

# 스테이징 영역에서 특정 파일 제거
$ git restore --staged hello.txt

 

이 명령어를 실행하면 파일이 다시 Untracked 상태로 돌아갑니다.

 

 

3. 로컬 저장소(Local Repository)란? 🗂️

Git의 핵심 개념 중 하나는 로컬 저장소(Local Repository) 입니다.

로컬 저장소사용자의 컴퓨터에서 변경 사항이 영구적으로 저장되는 공간을 의미합니다.

즉, 파일이 Git에 커밋(commit)되면 로컬 저장소에 안전하게 보관됩니다.

🔍 로컬 저장소의 역할

  • Git이 변경된 파일을 저장하는 공간 – 스테이징 영역에 추가된 파일이 로컬 저장소에 저장됩니다.
  • 파일의 변경 이력을 추적 – 이전에 저장한 모든 버전을 관리할 수 있습니다.
  • 로컬에서만 관리되므로 안전 – 원격 저장소로 푸시(push)하기 전까지는 개인 저장소로 남습니다.

🖥️ 실전 예제: 변경 사항을 로컬 저장소에 커밋하기

이제 변경된 파일을 로컬 저장소에 커밋하고 상태를 확인하는 과정을 실습해 보겠습니다.

# 1️⃣ 변경된 파일 확인
$ git status

# 2️⃣ 파일을 스테이징 영역에 추가
$ git add hello.txt

# 3️⃣ 로컬 저장소에 커밋
$ git commit -m "첫 번째 커밋"

 

git commit -m "메시지" 명령어를 실행하면, 현재까지 스테이징 영역에 추가된 모든 파일이 로컬 저장소에 기록됩니다.

[main 3f5e2a1] 첫 번째 커밋
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt

📌 커밋 이력 확인하기

# 저장된 모든 커밋 이력 확인
$ git log

 

git log 명령어를 실행하면, 이전에 수행된 모든 커밋 내역을 확인할 수 있습니다.

🚀 로컬 저장소에서 이전 상태로 되돌리기

Git은 커밋을 통해 모든 변경 사항을 기록하기 때문에, 이전 상태로 돌아가야 할 때 매우 유용합니다.

# 마지막 커밋을 취소 (수정 내용 유지)
$ git reset --soft HEAD~1

# 특정 커밋으로 되돌리기 (변경 내용 삭제)
$ git reset --hard <커밋 해시>

 

git reset --soft HEAD~1 명령어는 최근 커밋을 취소하지만 변경 사항은 유지합니다.

반면, git reset --hard모든 변경 사항을 삭제하고 지정된 커밋으로 돌아갑니다.

 

🔚 마무리: Git의 3가지 영역을 이해하고 효과적으로 활용하기 🚀

이제 Git의 3가지 핵심 영역(작업 디렉터리, 스테이징 영역, 로컬 저장소)을 완벽하게 이해하셨나요?

Git은 단순한 버전 관리 도구가 아니라, 개발 생산성을 극대화하는 필수적인 도구입니다.

 

✔️ 작업 디렉터리(Working Directory) – 실제 파일이 존재하고 수정되는 공간

✔️ 테이징 영역(Staging Area) – 커밋할 변경 사항을 임시로 저장하는 공간

✔️ 로컬 저장소(Local Repository) – 모든 변경 사항이 영구적으로 기록되는 공간

 

이제 Git을 활용하여 **보다 체계적인 버전 관리**를 할 수 있습니다!

Git을 더 깊이 배우려면, 아래 방법을 실천해 보세요.

  • Git을 직접 사용해보기 – git init을 실행하여 새 저장소를 만들어보세요!
  • 파일을 추가하고 커밋하기 – git addgit commit을 연습해 보세요.
  • GitHub와 연결하여 협업하기 – git pushgit pull을 사용해 보세요.

 

Git은 배우면 배울수록 강력한 기능을 제공하는 도구입니다.

앞으로도 Git을 활용하여 프로젝트를 효율적으로 관리해 보세요! 🚀

반응형