Search

Git fork

GitHub Forkλž€?

λ‹€λ₯Έ μ‚¬μš©μžμ˜ GitHub μ €μž₯μ†Œλ₯Ό 볡사해 μžμ‹ μ˜ 계정에 λ…λ¦½λœ μ €μž₯μ†Œλ‘œ μƒμ„±ν•˜λŠ” GitHub κΈ°λŠ₯

Fork의 νŠΉμ§•

ν•­λͺ©
λ‚΄μš©
독립성
원본 μ €μž₯μ†Œμ™€ μ™„μ „νžˆ λ…λ¦½λœ μ €μž₯μ†Œ
λͺ©μ 
원본을 μœ μ§€ν•œ 채 자유둭게 μˆ˜μ •ν•˜κ±°λ‚˜ κΈ°μ—¬(Pull Request) κ°€λŠ₯
μ—°κ²°μ„±
Git μƒμœΌλ‘œλŠ” λ³„κ°œμ§€λ§Œ, GitHubμ—μ„œλŠ” μ›λ³Έκ³Όμ˜ 관계λ₯Ό 좔적 κ°€λŠ₯
μš©λ„
μ˜€ν”ˆμ†ŒμŠ€ κΈ°μ—¬, ν•™μŠ΅μš© μ‹€μŠ΅, μ»€μŠ€ν„°λ§ˆμ΄μ§• λ“±

Forkλ₯Ό μ‚¬μš©ν•˜λŠ” 이유

1.
μ˜€ν”ˆμ†ŒμŠ€ ν”„λ‘œμ νŠΈμ— κΈ°μ—¬ν•˜κΈ° μœ„ν•΄
2.
νŒ€ μ™ΈλΆ€ μ‚¬μš©μžκ°€ λ‚΄ μ½”λ“œμ— 직접 μ ‘κ·Όν•  수 없을 λ•Œ
3.
κΈ°μ‘΄ ν”„λ‘œμ νŠΈλ₯Ό μ°Έκ³ ν•˜κ±°λ‚˜ ν™•μž₯ν•˜κ³  싢을 λ•Œ
4.
μ½”λ“œ 좩돌 없이 자유둭게 μ‹€ν—˜ν•˜κ³  싢을 λ•Œ

Fork μ‚¬μš© 흐름 (κΈ°λ³Έ νŒ¨ν„΄)

1.
GitHubμ—μ„œ Fork λ²„νŠΌ 클릭
2.
μžμ‹ μ˜ 계정에 μ €μž₯μ†Œκ°€ 볡사됨 (내계정/μ›λ³Έν”„λ‘œμ νŠΈ)
3.
둜컬둜 ν΄λ‘ ν•˜μ—¬ μž‘μ—…
git clone https://github.com/내계정λͺ…/λ³΅μ‚¬λœμ €μž₯μ†Œ.git
Shell
볡사
4.
컀밋 & ν‘Έμ‹œ (자유둭게 μ½”λ“œ μˆ˜μ •)
5.
GitHubμ—μ„œ 원본 μ €μž₯μ†Œμ— Pull Request 보내기

GitHub CLI μ‚¬μš© μ‹œ

gh repo fork μ‚¬μš©μžλͺ…/원본저μž₯μ†Œλͺ… --clone
Shell
볡사

원본 μ €μž₯μ†Œ μ΅œμ‹  λ‚΄μš© κ°€μ Έμ˜€κΈ° (Upstream μ„€μ •)

ν¬ν¬ν•œ μ €μž₯μ†Œλ₯Ό μ΅œμ‹  μƒνƒœλ‘œ μœ μ§€ν•˜κ³  μ‹Άλ‹€λ©΄:
# 1. 원본 μ €μž₯μ†Œ μΆ”κ°€ git remote add upstream https://github.com/원본계정/μ €μž₯μ†Œ.git # 2. μ΅œμ‹  λ‚΄μš© κ°€μ Έμ˜€κΈ° git fetch upstream # 3. λ³‘ν•©ν•˜κΈ° git merge upstream/main
Shell
볡사

μ‹œκ°μ μœΌλ‘œ μš”μ•½

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 원본 μ €μž₯μ†Œ β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ ↓ (Fork) β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ λ‚΄ μ €μž₯μ†Œ β”‚ ← μ™„μ „νžˆ 독립적 β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ ↓ (Clone) β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 둜컬 μ €μž₯μ†Œ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ↓ (Push) β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ λ‚΄ μ €μž₯μ†Œ β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ ↓ (Pull Request) β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 원본 μ €μž₯μ†Œ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Plain Text
볡사

ν˜‘μ—… 사둀

β€’
λ‚΄κ°€ λ§Œλ“  κΈ°λŠ₯을 원본에 λ°˜μ˜ν•˜κ³  싢을 λ•Œ β†’ PR μš”μ²­
β€’
ꡐ윑/μ‹€μŠ΅μš© ν”„λ‘œμ νŠΈ 배포 μ‹œ β†’ Fork ν›„ μ‹€μŠ΅
β€’
곡식 ν”„λ‘œμ νŠΈμ— μ œν•œλœ κΆŒν•œλ§Œ μžˆλŠ” 경우 β†’ Fork 기반 ν˜‘μ—