--- id: b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e category: Dev 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`