--- id: b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e category: Unified confidence_score: 0.98 tags: [git, workflow, branching, github-flow, git-flow, trunk-based-development, devops] last_reinforced: 2026-05-01 github_commit: "wikification-git-workflow" --- # Modern Git Workflows & Branching Strategies ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > 효율적인 Git μ›Œν¬ν”Œλ‘œμš°λŠ” νŒ€μ˜ 규λͺ¨μ™€ 릴리즈 주기에 맞좰 μ„ νƒλ˜μ–΄μ•Ό ν•˜λ©°, Trunk-based Development와 짧은 생λͺ…μ£ΌκΈ°μ˜ Feature Branchλ₯Ό 톡해 지속적 톡합(CI)의 κ°€μΉ˜λ₯Ό μ‹€ν˜„ν•˜λŠ” 데 λͺ©μ μ΄ μžˆλ‹€. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) ### 1. μ£Όμš” μ „λž΅λ³„ νŠΉμ§• - **Git Flow**: 정기적인 릴리즈 μ£ΌκΈ°κ°€ μžˆλŠ” λŒ€κ·œλͺ¨ ν”„λ‘œμ νŠΈμ— 적합. `master`, `develop`, `feature`, `release`, `hotfix` 브랜치λ₯Ό μ—„κ²©νžˆ κ΄€λ¦¬ν•œλ‹€. - **GitHub Flow**: 지속적 배포(CD)에 μ΅œμ ν™”λœ λ‹¨μˆœν•œ λͺ¨λΈ. `main` λΈŒλžœμΉ˜μ™€ 짧은 수λͺ…μ˜ `feature` 브랜치만 μ‚¬μš©ν•˜λ©°, PR을 톡해 μƒμ‹œ λ°°ν¬ν•œλ‹€. - **Trunk-based Development**: λͺ¨λ“  κ°œλ°œμžκ°€ ν•˜λ£¨μ—λ„ μ—¬λŸ¬ 번 `main`에 직접 λ³‘ν•©ν•˜λŠ” 방식. μΆ©λŒμ„ μ΅œμ†Œν™”ν•˜κ³  ν”Όλ“œλ°± 루프λ₯Ό κ·ΉλŒ€ν™”ν•œλ‹€. ### 2. ν˜‘μ—… 및 ν’ˆμ§ˆ 관리 - **Pull Request (PR)**: μ½”λ“œ 리뷰λ₯Ό μœ„ν•œ ν•„μˆ˜ κ΄€λ¬Έ. λ³€κ²½ μ‚¬ν•­μ˜ μ˜λ„λ₯Ό μ„€λͺ…ν•˜κ³  μžλ™ν™”λœ ν…ŒμŠ€νŠΈλ₯Ό 톡과해야 λ³‘ν•©λœλ‹€. - **Conventional Commits**: `feat:`, `fix:`, `refactor:` λ“± κ·œκ²©ν™”λœ 접두사λ₯Ό μ‚¬μš©ν•˜μ—¬ 컀밋 λ©”μ‹œμ§€μ˜ 가독성을 높이고 릴리즈 λ…ΈνŠΈλ₯Ό μžλ™ν™”ν•œλ‹€. - **Atomic Commits**: ν•˜λ‚˜μ˜ 컀밋은 ν•˜λ‚˜μ˜ 논리적 λ³€κ²½λ§Œ λ‹΄μ•„μ•Ό ν•œλ‹€. μ΄λŠ” λ‘€λ°±κ³Ό 디버깅(bisect)을 μš©μ΄ν•˜κ²Œ ν•œλ‹€. ### 3. ν”„λ‘ νŠΈμ—”λ“œ νŒ€μ„ μœ„ν•œ μ „λž΅ - **짧은 생λͺ…μ£ΌκΈ°**: λΈŒλžœμΉ˜κ°€ λ©°μΉ μ”© μœ μ§€λ˜λŠ” 것을 μ§€μ–‘ν•˜κ³ , κ°€λŠ₯ν•œ λΉ λ₯΄κ²Œ `main`에 ν†΅ν•©ν•˜μ—¬ 'Merge Hell'을 λ°©μ§€ν•œλ‹€. - **Feature Flags**: λŒ€κ·œλͺ¨ κΈ°λŠ₯을 κ°œλ°œν•  λ•Œ μ½”λ“œλŠ” λ³‘ν•©ν•˜λ˜ λŸ°νƒ€μž„μ— κΈ°λŠ₯을 λΉ„ν™œμ„±ν™”ν•˜μ—¬ Trunk-based 방식을 μ§€μ›ν•œλ‹€. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **λ³΅μž‘λ„ vs μ œμ–΄**: Git FlowλŠ” μ•ˆμ „ν•˜μ§€λ§Œ 브랜치 관리 λΉ„μš©μ΄ 크며, GitHub FlowλŠ” λΉ λ₯΄μ§€λ§Œ λŒ€κ·œλͺ¨ νŒ€μ˜ 릴리즈 관리가 λ‚œν•΄ν•  수 μžˆλ‹€. - **Merge vs Rebase**: RebaseλŠ” κΉ¨λ—ν•œ νžˆμŠ€ν† λ¦¬λ₯Ό μ œκ³΅ν•˜μ§€λ§Œ κ°•μ œ ν‘Έμ‹œ(force push) μœ„ν—˜μ΄ 있고, MergeλŠ” λ³΄μˆ˜μ μ΄μ§€λ§Œ νžˆμŠ€ν† λ¦¬κ°€ λ³΅μž‘ν•΄μ§ˆ 수 μžˆλ‹€. νŒ€μ˜ μ»¨λ²€μ…˜ ν•©μ˜κ°€ μ€‘μš”ν•˜λ‹€. ## πŸ”— 지식 μ—°κ²° (Graph) - **Parent**: 10_Wiki/Topics/Development - **Related**: Engineering Principles (SOLID, DRY, KISS, YAGNI), CI-CD Pipeline Integration - **Raw Source**: 00_Raw/Git Flow, 00_Raw/Git Workflow, 00_Raw/GitHub Flow, 00_Raw/Branching Strategies, 00_Raw/Trunk-based Development, 00_Raw/Atomic Commits, 00_Raw/Pull Request (PR) ## πŸ’» GitHub 동기화 μžλ™ν™” μ›Œν¬ν”Œλ‘œμš° 1. Stage: git add . 2. Commit: `git commit -m "[P-Reinforce] Wikify Modern Git Workflows and Branching Strategies"` 3. Push: `git push origin main` ## πŸ”— Knowledge Connections ### Related Concepts (Auto-Linked) * [[2026-05-01]] * [[Branching Strategies]] * [[CI-CD_Pipeline]] * [[Engineering_Principles]] * [[Git Workflow]] * [[GitHub Flow]] * [[P-Reinforce]] * [[Principles]]