์ƒˆ์†Œ์‹

IT & Security/Git & GitHub

Git ๋ธŒ๋žœ์น˜(Branch)์˜ ๊ฐœ์š” | Git Branch | ๊นƒ ๋ธŒ๋žœ์น˜ ์‚ฌ์šฉํ•˜๊ธฐ

  • -
๋ฐ˜์‘ํ˜•

๋ชจ๋“  ํฌ์ŠคํŒ…์€ ๊ตฌ๋ฆ„์—๋“€ ๊ฐ•์ขŒ ์ค‘ "Git์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ˜‘์—… ๋ฐ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ" ์˜ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ

์ถœ์ฒ˜๋Š” ์•„๋ž˜์˜ ์ฃผ์†Œ๋กœ "๋‚˜๋™๋นˆ"๋‹˜์˜ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. 

์ƒ์—…์ ์ธ ์˜๋„๊ฐ€ ์•„๋‹Œ ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•ด๋†“๋Š” ๋ชฉ์ ์œผ๋กœ ํฌ์ŠคํŒ… ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

edu.goorm.io/learn/lecture/11528/git์œผ๋กœ-์‹œ์ž‘ํ•˜๋Š”-ํ˜‘์—…-๋ฐ-์˜คํ”ˆ์†Œ์Šค-ํ”„๋กœ์ ํŠธ/info

 

๊ตฌ๋ฆ„EDU - ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋งž์ถคํ˜• IT๊ต์œก

๊ตฌ๋ฆ„EDU๋Š” ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋งž์ถคํ˜• IT๊ต์œก ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ/ํ•™๊ต/๊ธฐ์—… ๋ฐ ๊ธฐ๊ด€ ๋ณ„ ์ตœ์ ํ™”๋œ IT๊ต์œก ์†”๋ฃจ์…˜์„ ๊ฒฝํ—˜ํ•ด๋ณด์„ธ์š”. ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค๋ฌด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต์œก, ์ „๊ตญ ์ดˆ์ค‘๊ณ /๋Œ€ํ•™๊ต ์˜จ๋ผ์ธ ๊ฐ•์˜, ๊ธฐ์—…/

edu.goorm.io


# ๋ธŒ๋žœ์น˜

๊นƒ์€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ธŒ๋žœ์น˜(Branch) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋ธŒ๋žœํ‹ฐ๋Š” ์ž‘์—…์„ ํ•จ์— ์žˆ์–ด์„œ ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์—์„œ ๋งˆ์Œ ๋†“๊ณ  ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ธฐ๋ณธ์ ์œผ๋กœ ๊นƒ์„ ์ €์žฅ์†Œ๋กœ ๋งŒ๋“ค๋ฉด ์ž๋™์œผ๋กœ ๋งˆ์Šคํ„ฐ(Master)๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ ๋œ๋‹ค. ์ด ๋ธŒ๋žœ์น˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์˜ ์•ˆ์ •ํ™”๋œ ๋ฒ„์ „์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

 

๋™์ž‘๊ณผ์ •

ํ”„๋กœ์ ํŠธ์—์„œ ์ฃผ ๋ฒ„์ „์„ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋ผ๊ณ  ํ•œ๋‹ค.(์ž๋™ ์ƒ์„ฑ๋จ)
ํŠน์ •์ง€์ ์—์„œ ๊ฐœ๋ฐœ์„ ํ•ด์•ผ ํ•œ๋‹ค๋ฉด Develop Branch๋ฅผ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค. ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ๋ฒ„๊ทธ๋ฅผ ๊ณ ์น  ๋•Œ๋Š” Bug Fix Branch๋ฅผ ์จ์ค€๋‹ค.

๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋Š” ํ•ญ์ƒ ์•ˆ์ •ํ™” ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๊ณ  ์–ธ์ œ๋‚˜ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๊ฐ™์€ ๋ชจ๋“  ์ž‘์—…์„ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ ํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค.
์ด๋Ÿด ๊ฒฝ์šฐ ๋ณ‘๋ ฌ์‹์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ๊ธฐ ๊ธฐ๋Šฅ์— ๋งž๊ฒŒ ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ฆ‰ ๊ฐ ๋ธŒ๋žœ์น˜๋กœ ๊ฐœ๋ฐœ์„ ํ•˜์—ฌ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ์„ ์‹œํ‚ค๋Š” ๊ตฌ์กฐ์ธ ๊ฒƒ์ด๋‹ค.

๋ณ‘ํ•ฉ์„ ํ•  ๋•Œ๋Š” ํ•ฉ์น˜๊ธฐ(Merge)๊ฐ€ ์ˆ˜ํ–‰๋œ๋‹ค.
Merge๊ฐ€ ์ˆ˜ํ–‰๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์•ˆ์ •์ ์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋‹ค๊ฐ€, ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ํ•ฉ์ณ์ง„ ์ดํ›„์— ๋‹ค์‹œ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐœ๋ฐœ์˜ ์•ˆ์ •์„ฑ์ด ๋งค์šฐ ๋›ฐ์–ด๋‚˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

> ํ†ตํ•ฉ ๋ธŒ๋žœ์น˜ : ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์˜ ๋ธŒ๋žœ์น˜๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ๋งˆ์Šคํ„ฐ(Master) ๋ธŒ๋žœ์น˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
> ํ† ํ”ฝ ๋ธŒ๋žœ์น˜ : ํŠน์ •ํ•œ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๋ธŒ๋žœ์น˜๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ๋งˆ์Šคํ„ฐ(Master) ๋ธŒ๋žœ์น˜ ์ด์™ธ์˜ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

# ๋ธŒ๋žœ์น˜ ์‹ค์Šตํ•ด๋ณด๊ธฐ

๋จผ์ € git branch๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ํ˜„์žฌ ๋ช‡ ๊ฐœ์˜ ๋ธŒ๋žœ์น˜๊ฐ€ ์กด์žฌํ•˜๋Š” ์ง€ ๋ณด์—ฌ์ค€๋‹ค.

์ž๋™์œผ๋กœ ์กด์žฌํ•˜๋Š” Master๋ธŒ๋žœ์น˜๋งŒ ์กด์žฌํ•œ๋‹ค.

 

๋ธŒ๋žœ์น˜๋ฅผ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•ด๋ณด์ž.

"git branch <branch name>" ์„ ํ•ด์ฃผ๋ฉด ํ•ด๋‹น ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

 

ํ˜„์žฌ ์œ„์น˜๋ฅผ Master branch๊ฐ€ ์•„๋‹Œ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด "checkout" ๋ช…๋ น์–ด๋ฅผ ์จ์ฃผ๋ฉด ๋œ๋‹ค.

ํ˜„์žฌ ๊ฐ€๋ฅดํ‚ค๋Š” ๋ธŒ๋žœ์น˜๊ฐ€ ๋ฐ”๋€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด ์ƒํƒœ์—์„œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด๋ณด๋„๋ก ํ•˜์ž. ๋ณ€๊ฒฝํ•  ์†Œ์Šค์ฝ”๋“œ๋Š” ์ด์ „ ์‹œ๊ฐ„์— ๋งŒ๋“  comtest.py ํŒŒ์ผ์ด๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

 

์ดํ›„ git add์™€ git commit ์œผ๋กœ ์ปค๋ฐ‹ ์‹œ์ผœ์ค€๋‹ค.

 

๋ณ€๊ฒฝ ํ›„ commit log๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋œ๋‹ค.

ํ˜„์žฌ ํ—ค๋“œ๊ฐ€ ์ƒˆ๋กœ ๋งŒ๋“  ๋ธŒ๋žœ์น˜์ธ "develop"์„ ๊ฐ€๋ฅดํ‚ค๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ปค๋ฐ‹์ด ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ origin์ฆ‰ ์›๊ฒฉ์ง€ ์ฃผ์†Œ์—์„œ๋Š” master๋ฅผ ๊ฐ€๋ฅดํ‚ค๊ณ  ์žˆ๋‹ค. ๋ฐ˜์˜์ด ์•ˆ๋œ ๊ฒƒ์ด๋‹ค.

 

์ฆ‰, ํ˜„์žฌ ๋ธŒ๋žœ์น˜์—์„œ๋งŒ ์ ์šฉ์ด ๋˜๊ณ  ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ๋Š” ๋ณ€๊ฒฝ์ด ์ ์šฉ๋˜์ง€ ์•Š์€ ๊ฒƒ์ด๋‹ค.

 

์—ฌ๊ธฐ์„œ develop๋ธŒ๋žœ์น˜์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ master๋ธŒ๋žœ์น˜์— ํ•ฉ์น˜๋ ค๋ฉด ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ Merge๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

์œ„์™€ ๊ฐ™์ด ๋‹ค์‹œ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ€๋ฅดํ‚ค๊ฒŒ ํ•œ ํ›„ merge๋ช…๋ น์„ ํ†ตํ•ด ๋‘ ๋ธŒ๋žœ์น˜๋ฅผ ๋งž์ถ”์–ด ์ฃผ๋ฉด ๋œ๋‹ค.

 

๋‹ค์‹œ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด๋ณด์ž.

ํ—ค๋“œ๊ฐ€ ๋งˆ์Šคํ„ฐ์™€ develop์„ ๊ฐ€๋ฅดํ‚จ๋‹ค. ์ด๊ฒƒ์€ ์ˆ˜์ •๋œ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜์˜ํ•˜์˜€๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

์›๊ฒฉ์ง€ ์ €์žฅ์†Œ์—๋„ ์ˆ˜์ •๋‚ด์—ญ์„ ์ ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด git push ๋ช…๋ น์„ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์ˆ˜์ •๋‚ด์—ญ์ด ์ ์šฉ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๋ชจ๋“  ์ˆ˜์ •์ด ๋๋‚œ ํ›„ git branch๋ฅผ ํ•ด๋ณด๋ฉด ์•„์ง develop๋ธŒ๋žœ์น˜๊ฐ€ ๋‚จ์•„์žˆ๋‹ค. ๋ณ‘ํ•ฉ์ด ๋๋‚˜์„œ ์—ญํ• ์„ ๋‹คํ•œ ๋ธŒ๋žœ์น˜๋Š” ์ œ๊ฑฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

git branch -d develop

 

์ œ๊ฑฐ ํ›„ ๋ธŒ๋žœ์น˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์ฒ˜์Œ๊ณผ ๊ฐ™์ด Master ํ•˜๋‚˜๋งŒ ์กด์žฌํ•œ๋‹ค.

 

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.