[Git] ๋ธŒ๋žœ์น˜

[์›๋ณธ ๋งํฌ]

๊ธฐ๋ณธ์ ์œผ๋กœ, ํ”„๋กœ์ ํŠธ๋Š” ํ˜‘์—…์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๋ณด๋ฉด ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ, ์ด์Šˆ๋ณ„ ์ฝ”๋“œ, ๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋Šฅ๋ณ„ ์ฝ”๋“œ๋“ค์„ ๋ถ„๋ฆฌํ•ด์„œ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š”๋ฐ...

๋ธŒ๋žœ์น˜๋Š” ๊ทธ๋Ÿฐ๊ฑธ ์œ„ํ•œ ๊ธฐ๋Šฅ์ด๋‹ค.

๋ธŒ๋žœ์น˜(branch)๋Š” ๋‹จ์–ด์˜ ๋œป ๊ทธ๋Œ€๋กœ, ๋ถ„๊ธฐ๋ฅผ ๋‚˜๋ˆˆ๋‹ค.
๊ทธ๋Ÿผ ๊ฐ ๊ฐœ๋ฐœ์ž๋“ค์€ ์ž์‹ ์˜ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ‘ธ์‹œํ•˜๊ณ , ์šด์˜์ž๋Š” ๊ทธ๊ฑธ ์ž˜ ํ†ตํ•ฉํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ์ž ๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ, ํŠน์ • ๊ธฐ๋Šฅ, ๋ฒ„๊ทธ ํ”ฝ์Šค ๋‹จ์œ„๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ์ชผ๊ฐœ์„œ ๊ด€๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

๊นƒํ—™ ํŽ˜์ด์ง€๋ฅผ ๋ณด๋ฉด ํ•ญ์ƒ master๋ผ๊ณ  ๋œจ๋Š”๊ฒŒ ์žˆ๊ณ , ์ด์ „์— push ๋“ฑ์„ ํ• ๋•Œ master๋ฅผ ์“ด ์ ๋„ ์žˆ๋Š”๋ฐ.
์ด master๋„ ์‚ฌ์‹ค ๋ธŒ๋žœ์น˜ ์ค‘์˜ ํ•˜๋‚˜๋‹ค. ๊นƒํ—™์—์„œ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜์ผ ๋ฟ์ด๋‹ค.

๋จผ์ € ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์‚ดํŽด๋ณด์ž.
Github์—์„œ TestGit์ด๋ผ๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ , clone์œผ๋กœ ๊ทธ๊ฑธ ๋ฐ›์•„์™”๋‹ค. image

image

๊ธฐ์กด์— ์กด์žฌํ•˜๋˜ ํŒŒ์ผ์€ ๋Œ€์ถฉ ์ด๋ ‡๋‹ค. image

image

๊ทธ๋Ÿผ ์ด์ œ ํ•˜๋‚˜์”ฉ ์ตํ˜€๋ณด์ž.


๋ธŒ๋žœ์น˜ ํ™•์ธ
๊ทธ๋ƒฅ git branch๋ฅผ ์น˜๋ฉด ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ๋ธŒ๋žœ์น˜๋“ค์„ ๋ฐ›์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค. image

image ๋งˆ์Šคํ„ฐ ํ•˜๋‚˜๊ฐ€ ์žˆ๋‹ค.


๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
๋ธŒ๋žœ์น˜ ์ƒ์„ฑ๋„ ๊ฐ„๋‹จํ•˜๋‹ค.
๊ทธ๋ƒฅ ์•„๋ž˜์™€ ๊ฐ™์ด ์น˜๋ฉด ๋œ๋‹ค.
git branch ๋ธŒ๋žœ์น˜๋ช… image

image bugfix๋ผ๋Š” ์ด๋ฆ„์˜ ๋ธŒ๋žœ์น˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.


๋ธŒ๋žœ์น˜ ์ „ํ™˜
๊ทผ๋ฐ ์ €๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด๋‘๊ธฐ๋งŒ ํ•ด์„œ๋Š” ์“ธ๋ฐ๊ฐ€ ์ „ํ˜€ ์—†๋‹ค. ์—ฌ์ „ํžˆ ๋ธŒ๋žœ์น˜๋Š” master์ธ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•˜๋ ค๋ฉด, checkout ๋ช…๋ น์„ ์“ฐ๋ฉด ๋œ๋‹ค.
git checkout ๋ธŒ๋žœ์น˜๋ช… image

image ์ž˜ ๋ฐ”๋€๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ฐธ๊ณ ๋กœ checkout์— -b ํ”Œ๋ž˜๊ทธ๋ฅผ ์ฃผ๋ฉด ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๋ฉด์„œ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿผ ์ด์ œ ๋ญ”๊ฐ€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ข€ ์ค˜๋ณด์ž.
bugfixed๋ผ๋Š” ์“ธ๋ฐ์—†๋Š” ํ…์ŠคํŠธ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ , ์ถ”๊ฐ€ํ•˜๊ณ , ์ปค๋ฐ‹ํ–ˆ๋‹ค. image

image ๋ญ ์ž˜ ๋œ๋‹ค.

ํ•œ๋ฒˆ ํ‘ธ์‹œ๋„ ํ•ด๋ณด์ž. image

image ์ž˜ ๋œ๋‹ค!

๊ทธ๋ฆฌ๊ณ  ๊นƒํ—™์— ๊ฐ€๋ณด๋ฉด image

image ๋ธŒ๋žœ์น˜๊ฐ€ ์ถ”๊ฐ€๋œ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ธŒ๋žœ์น˜ ๋ชจ๋“œ๋ฅผ ๋ฐ”๊พธ๋ฉด ๋ณ€๊ฒฝ๋œ ์ฝ”๋“œ๋“ค๋„ ์ „๋ถ€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ .


๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉํ•˜๊ธฐ
๊ทผ๋ฐ ์ €๋Ÿฌ๊ธฐ๋งŒ ํ•ด์„œ์•ผ ๋ญ ๋˜๊ฒ ๋Š”๊ฐ€?
๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์„ ๋‹ค์‹œ ํ•œ๊ณณ์— ๋ญ‰์ณ์•ผ ๋ญ๊ฐ€ ๋˜์ง€.

์–ด์ฐจํ”ผ ๋ฉ”์ธ์œผ๋กœ ๊ด€๋ฆฌ๋˜๋Š” ๋ธŒ๋žœ์น˜๋Š” master๋‹ค.
master๋กœ ๋Œ์•„๊ฐ€, bugfix์—์„œ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์„ ๋ณ‘ํ•ฉํ•ด์ค˜์•ผ ํ•œ๋‹ค.

์—ฌ๋Ÿฟ์ด์„œ ํ˜‘์—…ํ•  ๊ฒฝ์šฐ์—” ์•„๋งˆ pull์„ ํ†ตํ•ด ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜ ์ž‘์—…์„ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ์— ๋ณ‘ํ•ฉ์„ ์‹œ๋„ํ•ด์•ผ ํ• ๊ฒƒ์ด๋‹ค...

๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
git merge ๋ณ‘ํ•ฉํ• ๋ธŒ๋žœ์น˜๋ช… image

image ๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋œ๋‹ค.

์ œ๋Œ€๋กœ ๋๋‹ค๋ฉด ๋ญ ๊ทธ๋ƒฅ ํ‘ธ์‹œํ•˜๋ฉด ๋œ๋‹ค. image

image


๋ธŒ๋žœ์น˜ ์‚ญ์ œํ•˜๊ธฐ
์ผํšŒ์šฉ ์ด์Šˆ์„ฑ์˜ ๋ธŒ๋žœ์น˜์ธ ๊ฒฝ์šฐ, ์ž‘์—…์ด ๋๋‚˜๋ฉด ๊น”๋”ํ•˜๊ฒŒ ์‚ญ์ œํ•˜๋Š” ๊ฒŒ ๋„๋ฆฌ์ผ ๊ฒƒ์ด๋‹ค.
๋ญ ๊ทธ๋ƒฅ ์ด๋ ‡๊ฒŒ, branch ๋ช…๋ น์— -d ํ”Œ๋ž˜๊ทธ๋ฅผ ์ฃผ๋ฉด ๋œ๋‹ค.
git branch -d ๋ธŒ๋žœ์น˜๋ช… image

image

์—ฌ๊ธฐ์„  ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ์‚ฌํ•ญ๋งŒ ๋‹ค๋ค˜์ง€๋งŒ, ์ด๊ฑฐ ๋ง๊ณ ๋„ ๊ธฐ๋Šฅ์ด๋‚˜ ์ฃผ์˜์ ์ด ์ด๊ฒƒ์ €๊ฒƒ ๋งŽ๋‹ค.
๋‚˜๋จธ์ง€๋Š” ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๋‹ค๋ฃจ๊ฒ ๋‹ค.


์ฐธ์กฐ
https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html