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
- Working Directory: μ€μ νμΌμ μμ νλ 곡κ°
- Staging Area: 컀λ°ν νμΌλ€μ λͺ¨μλλ 곡κ°
- 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 λ± κΈ°λ³Έ λͺ
λ Ήμ΄λ₯Ό λ°°μλ΄
μλ€!