모든 강의를 무료로 볼 수 있어요. 회원가입 없이도 학습 가능합니다.

3강 / 전체 7강

저장소 만들기

8분 읽기 조회 6

git init으로 로컬 저장소 생성, .git 디렉터리 내부 구조, Git의 3가지 영역(작업 디렉터리·스테이징·저장소) 개념, git clone으로 원격 저장소 복사까지 저장소의 모든 것을 완전히 이해합니다.

🎯 학습 목표

이 강을 마치면 다음을 할 수 있습니다.

  • git init으로 새 로컬 저장소를 만들 수 있습니다.
  • Git의 3가지 핵심 영역(작업 디렉터리, 스테이징 영역, 저장소)을 이해하고 설명할 수 있습니다.
  • .git 디렉터리가 무엇이고 왜 건드리면 안 되는지 이해합니다.
  • git clone으로 원격 저장소를 로컬에 복사할 수 있습니다.

🏗️ Git의 3가지 영역 — 핵심 개념

이 섹션에서는 Git이 파일을 관리하는 세 가지 공간의 개념과 파일이 이 공간들 사이에서 어떻게 이동하는지 살펴보겠습니다.

Git을 처음 배울 때 가장 중요한 개념이 있습니다. Git은 파일을 한 곳에서 관리하지 않고 세 개의 영역으로 나눠 관리합니다. 이 개념을 이해하면 이후 배울 add, commit, push 명령어가 무엇을 하는지 훨씬 명확해집니다.

① 작업 디렉터리(Working Directory): 여러분이 실제로 파일을 편집하는 일반 폴더입니다. 코드를 작성하고, 파일을 생성하고, 내용을 수정하는 곳입니다. 여기서의 변경 사항은 아직 Git에 기록되지 않은 상태입니다.

② 스테이징 영역(Staging Area): 커밋할 파일들을 미리 모아두는 임시 공간입니다. "다음 커밋에 포함할 변경 사항"을 선별해서 담아두는 바구니라고 생각하면 됩니다. git add 명령이 파일을 이 영역으로 보냅니다. 인덱스(Index)라고도 부릅니다.

③ 저장소(Repository): 커밋된 스냅샷들이 영구적으로 저장되는 Git 데이터베이스입니다. .git 폴더 안에 있습니다. git commit 명령이 스테이징 영역의 내용을 이곳에 스냅샷으로 저장합니다.

영역명령어상태비유
작업 디렉터리파일 편집 (Git 명령 아님)수정 중 (Modified)작업실에서 물건 만들기
스테이징 영역git add스테이지됨 (Staged)포장 박스에 담기
저장소git commit커밋됨 (Committed)창고에 영구 보관

왜 스테이징 영역이 필요할까요? 한 번에 여러 파일을 수정했더라도 커밋은 논리적으로 관련 있는 변경 사항만 묶어서 만드는 것이 좋은 습관입니다. 예를 들어 기능 A와 버그 수정 B를 동시에 했다면, A 관련 파일만 add해서 커밋하고, 이후 B 관련 파일을 add해서 별도로 커밋할 수 있습니다. 스테이징 영역이 이 선택을 가능하게 합니다.

🚀 git init — 새 저장소 만들기

이 섹션에서는 git init 명령어로 새 프로젝트를 Git 저장소로 초기화하는 방법을 살펴보겠습니다.

git init은 일반 폴더를 Git이 추적하는 저장소로 변환합니다. 이 명령어 하나로 해당 폴더의 모든 변경 사항을 Git으로 관리할 수 있게 됩니다.

# 1. 새 프로젝트 폴더 만들기
mkdir my-first-project

# 2. 폴더 안으로 이동
cd my-first-project

# 3. Git 저장소 초기화
git init

# 출력 예시:
# Initialized empty Git repository in /Users/username/my-first-project/.git/

이미 파일이 있는 기존 폴더에서 실행해도 됩니다. 기존 파일들은 삭제되거나 변경되지 않습니다.

# 기존 폴더에서 Git 초기화
cd 기존프로젝트폴더
git init
# Initialized empty Git repository in /path/to/기존프로젝트폴더/.git/

git init을 실행하면 해당 폴더 안에 .git이라는 숨김 폴더가 생성됩니다. 점(.)으로 시작하는 폴더는 운영체제에서 기본적으로 숨겨서 표시합니다. 이 폴더가 Git 저장소의 핵심입니다.

# 숨김 파일·폴더 포함해서 목록 보기
ls -la   # macOS·Linux·Git Bash

# .git 폴더가 보이면 저장소 초기화 성공
# drwxr-xr-x  .git

🔍 .git 디렉터리 내부 — Git의 데이터베이스

이 섹션에서는 .git 폴더 안에 무엇이 있는지, 왜 이 폴더를 수동으로 건드리면 안 되는지 살펴보겠습니다.

.git 폴더는 Git이 모든 버전 정보를 저장하는 데이터베이스입니다. 이 폴더만 있으면 전체 프로젝트 히스토리를 복구할 수 있습니다. 내부 구조를 간략히 살펴보겠습니다.

# .git 폴더 내부 구조 확인
ls -la .git

# 주요 구성 요소:
# HEAD     - 현재 체크아웃된 브랜치 또는 커밋을 가리키는 포인터
# config   - 저장소별 Git 설정 파일
# objects/ - 모든 커밋, 파일 내용이 저장되는 폴더 (핵심 데이터베이스)
# refs/    - 브랜치와 태그 참조 정보
# index    - 스테이징 영역(인덱스)의 현재 상태

절대로 .git 폴더 내부를 수동으로 편집하지 마세요. Git 명령어를 통해서만 수정해야 합니다. 잘못 건드리면 저장소가 손상돼 복구가 어렵거나 불가능해질 수 있습니다. 반대로 .git 폴더를 삭제하면 해당 프로젝트의 모든 Git 히스토리가 사라지고 일반 폴더가 됩니다.

Git 저장소 삭제가 필요하다면(즉, Git 추적을 중단하고 싶다면) 다음과 같이 합니다.

# Git 저장소를 일반 폴더로 되돌리기 (히스토리 모두 삭제됨, 신중하게!)
rm -rf .git   # macOS·Linux·Git Bash

📋 git clone — 원격 저장소 복사하기

이 섹션에서는 GitHub 등에 있는 원격 저장소를 내 컴퓨터로 가져오는 git clone을 살펴보겠습니다.

git clone은 원격 저장소(GitHub 등)의 전체 내용을 내 컴퓨터에 복사합니다. 단순 파일 다운로드가 아니라 전체 Git 히스토리와 브랜치 정보를 포함한 완전한 복사입니다. 오픈소스 프로젝트에 기여하거나, 팀원의 저장소로 합류할 때 사용합니다.

# 기본 사용법
git clone <저장소 URL>

# 예시: GitHub의 공개 저장소 클론
git clone https://github.com/facebook/react.git

# 현재 폴더 안에 react 폴더가 생성되고 내부에 모든 파일과 .git이 존재

# 폴더 이름 지정해서 클론
git clone https://github.com/facebook/react.git my-react-copy
# react 대신 my-react-copy라는 이름으로 폴더 생성

클론이 완료되면 자동으로 origin이라는 이름으로 원격 저장소 주소가 등록됩니다. 이후 git push origin, git pull origin처럼 원격 저장소와 동기화할 때 이 이름을 사용합니다. 이 개념은 10강과 11강에서 자세히 다룹니다.

# 클론 후 원격 저장소 정보 확인
cd my-first-project
git remote -v
# origin  https://github.com/username/repo.git (fetch)
# origin  https://github.com/username/repo.git (push)

📂 좋은 저장소 구조 — 프로젝트 시작 전 알아두기

이 섹션에서는 Git 저장소를 만들 때 좋은 위치 선택과 기본 구조에 대한 가이드를 살펴보겠습니다.

Git 저장소를 처음 만들 때 몇 가지 주의할 점이 있습니다.

저장소 안에 저장소 금지: 폴더 A에 이미 .git이 있는데 그 안의 폴더 B에서 또 git init을 실행하면 중첩 저장소가 생깁니다. 이는 복잡한 문제를 야기하므로 피해야 합니다. 새 저장소는 항상 Git이 추적하지 않는 일반 폴더에서 시작하세요.

홈 디렉터리에서 git init 금지: 실수로 홈 디렉터리(~)에서 git init을 실행하면 홈 폴더 전체가 Git 저장소가 됩니다. 항상 프로젝트별 전용 폴더를 만들고 그 안에서 초기화하세요.

일반적인 프로젝트 초기화 순서:

# 권장하는 새 프로젝트 시작 방법
mkdir ~/projects/my-app    # 프로젝트 전용 폴더 생성
cd ~/projects/my-app       # 폴더 이동
git init                   # Git 초기화
# 이제 파일 만들고 작업 시작

📝 핵심 요약

3강에서 배운 내용을 정리해 보겠습니다.

# 오늘 배운 핵심 명령어

# 새 저장소 초기화
git init

# 원격 저장소 복사
git clone <URL>

# 원격 저장소 정보 확인
git remote -v

# 숨김 폴더 포함 목록 보기 (.git 확인용)
ls -la
개념설명
작업 디렉터리실제 파일 편집 공간 — 변경 사항이 아직 Git에 없음
스테이징 영역다음 커밋에 포함할 파일을 선별하는 임시 공간
저장소 (.git)커밋된 스냅샷이 영구 저장되는 Git 데이터베이스
git init일반 폴더를 Git 저장소로 초기화
git clone원격 저장소 전체(히스토리 포함)를 로컬에 복사

다음 강인 4강 — add와 commit에서는 Git의 가장 핵심적인 작업 사이클을 배웁니다. git add로 파일을 스테이징 영역에 올리고, git commit으로 스냅샷을 저장하는 과정을 처음부터 직접 실습합니다. 첫 번째 커밋을 만드는 순간입니다!

관련 주제

  • git init
  • 작업 디렉터리
  • 스테이징 영역
  • 저장소 3영역
  • .git 디렉터리
  • git clone
  • 개발·프로그래밍
  • 개발·프로그래밍 강의
  • 깃허브 사용법 18강 — Git & GitHub 협업
  • 무료강의
  • 무료 온라인 강의
  • NUGUNA
  • 누구나

📚 시리즈 전체 공유

깃허브 사용법 18강 — Git & GitHub 협업

이 강의가 속한 시리즈는 총 7강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.

댓글

0/1000

불러오는 중...