Git 기초

Git 기초

1. Gitμ΄λž€?

Git은 λΆ„μ‚° 버전 관리 μ‹œμŠ€ν…œ(DVCS)μž…λ‹ˆλ‹€. 파일의 λ³€κ²½ 이λ ₯을 μΆ”μ ν•˜κ³ , μ—¬λŸ¬ μ‚¬λžŒμ΄ ν˜‘μ—…ν•  수 있게 ν•΄μ€λ‹ˆλ‹€.

μ™œ Git을 μ‚¬μš©ν• κΉŒμš”?

  • 버전 관리: 파일의 λͺ¨λ“  λ³€κ²½ 이λ ₯을 μ €μž₯
  • λ°±μ—…: μ½”λ“œλ₯Ό μ•ˆμ „ν•˜κ²Œ 보관
  • ν˜‘μ—…: μ—¬λŸ¬ λͺ…이 λ™μ‹œμ— μž‘μ—… κ°€λŠ₯
  • μ‹€ν—˜: μƒˆλ‘œμš΄ κΈ°λŠ₯을 μ•ˆμ „ν•˜κ²Œ ν…ŒμŠ€νŠΈ

Git vs GitHub

Git GitHub
버전 관리 도ꡬ Git μ €μž₯μ†Œ ν˜ΈμŠ€νŒ… μ„œλΉ„μŠ€
λ‘œμ»¬μ—μ„œ λ™μž‘ 온라인 ν”Œλž«νΌ
λͺ…λ Ήμ–΄λ‘œ μ‚¬μš© μ›Ή μΈν„°νŽ˜μ΄μŠ€ 제곡

2. Git μ„€μΉ˜

macOS

# Homebrew둜 μ„€μΉ˜
brew install git

# λ˜λŠ” Xcode Command Line Tools둜 μ„€μΉ˜
xcode-select --install

Windows

Git 곡식 μ‚¬μ΄νŠΈμ—μ„œ λ‹€μš΄λ‘œλ“œν•˜μ—¬ μ„€μΉ˜

Linux (Ubuntu/Debian)

sudo apt update
sudo apt install git

μ„€μΉ˜ 확인

git --version
# 좜λ ₯ 예: git version 2.43.0

3. Git 초기 μ„€μ •

Git을 처음 μ‚¬μš©ν•  λ•Œ μ‚¬μš©μž 정보λ₯Ό μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ‚¬μš©μž 이름과 이메일 μ„€μ •

# μ‚¬μš©μž 이름 μ„€μ •
git config --global user.name "홍길동"

# 이메일 μ„€μ •
git config --global user.email "hong@example.com"

μ„€μ • 확인

# λͺ¨λ“  μ„€μ • 확인
git config --list

# νŠΉμ • μ„€μ • 확인
git config user.name
git config user.email

κΈ°λ³Έ 에디터 μ„€μ • (선택사항)

# VS Codeλ₯Ό κΈ°λ³Έ μ—λ””ν„°λ‘œ μ„€μ •
git config --global core.editor "code --wait"

# Vim μ‚¬μš©
git config --global core.editor "vim"

4. Git μ €μž₯μ†Œ λ§Œλ“€κΈ°

방법 1: μƒˆ μ €μž₯μ†Œ μ΄ˆκΈ°ν™”

# ν”„λ‘œμ νŠΈ 폴더 생성
mkdir my-project
cd my-project

# Git μ €μž₯μ†Œ μ΄ˆκΈ°ν™”
git init

μ‹€ν–‰ κ²°κ³Ό:

Initialized empty Git repository in /path/to/my-project/.git/

방법 2: κΈ°μ‘΄ μ €μž₯μ†Œ 볡제

# GitHubμ—μ„œ μ €μž₯μ†Œ 볡제
git clone https://github.com/username/repository.git

5. Git의 3κ°€μ§€ μ˜μ—­

Git은 νŒŒμΌμ„ 3κ°€μ§€ μ˜μ—­μ—μ„œ κ΄€λ¦¬ν•©λ‹ˆλ‹€:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Working        β”‚    β”‚  Staging        β”‚    β”‚  Repository     β”‚
β”‚  Directory      │───▢│  Area           │───▢│  (.git)         β”‚
β”‚  (μž‘μ—… 디렉토리)  β”‚    β”‚  (μŠ€ν…Œμ΄μ§• μ˜μ—­)  β”‚    β”‚  (μ €μž₯μ†Œ)        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      ↑                      ↑                      ↑
   파일 μˆ˜μ •              git add               git commit
  1. Working Directory: μ‹€μ œ νŒŒμΌμ„ μˆ˜μ •ν•˜λŠ” 곡간
  2. Staging Area: 컀밋할 νŒŒμΌλ“€μ„ λͺ¨μ•„λ‘λŠ” 곡간
  3. Repository: μ»€λ°‹λœ μŠ€λƒ…μƒ·μ΄ μ €μž₯λ˜λŠ” 곡간

μ‹€μŠ΅ 예제

예제 1: 첫 번째 μ €μž₯μ†Œ λ§Œλ“€κΈ°

# 1. μ‹€μŠ΅ 폴더 생성 및 이동
mkdir git-practice
cd git-practice

# 2. Git μ €μž₯μ†Œ μ΄ˆκΈ°ν™”
git init

# 3. 파일 생성
echo "# My First Git Project" > README.md

# 4. μƒνƒœ 확인
git status

μ˜ˆμƒ 좜λ ₯:

On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    README.md

nothing added to commit but untracked files present (use "git add" to track)

예제 2: μ„€μ • ν™•μΈν•˜κΈ°

# ν˜„μž¬ Git μ„€μ • 확인
git config --list --show-origin

핡심 정리

κ°œλ… μ„€λͺ…
git init μƒˆ Git μ €μž₯μ†Œ μ΄ˆκΈ°ν™”
git clone 원격 μ €μž₯μ†Œ 볡제
git config Git μ„€μ • λ³€κ²½
Working Directory νŒŒμΌμ„ μˆ˜μ •ν•˜λŠ” 곡간
Staging Area 컀밋 λŒ€κΈ° 곡간
Repository λ³€κ²½ 이λ ₯ μ €μž₯ 곡간

λ‹€μŒ 단계

02_Basic_Commands.mdμ—μ„œ add, commit, status, log λ“± κΈ°λ³Έ λͺ…λ Ήμ–΄λ₯Ό λ°°μ›Œλ΄…μ‹œλ‹€!

to navigate between lessons