๋ฐ˜์‘ํ˜•

๊นƒ(Git) ์ด๋ž€?

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜์‹œ๋Š” ๋ถ„์ด๋ผ๋ฉด ๊นƒ(Git)์— ๋Œ€ํ•ด ๋งŽ์ด ๋“ค์–ด๋ดค์„ ๊ฑฐ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก , ๊นƒ ํ—™(GitHub)์ด๋ž€ ๋‹จ์–ด๋„ ๋“ค์–ด๋ณด์…จ๊ฒ ์ฃ ? ๋ณธ๋ฌธ์—์„œ๋Š” ๊ตณ์ด ๊นƒ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๊นƒ์€ ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๊ณ  ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ  ๋“ฑ๋“ฑ ๊ตฌ๊ธ€์— ๊ฒ€์ƒ‰ํ•˜๋ฉด ๊นƒ์ด ๋ฌด์—‡์ธ์ง€๋Š” ์•„์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ์š”์•ฝํ•˜์ž๋ฉด,

๊นƒ์€ ํŒŒ์ผ์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ๋ช…์ด ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์— ๋™์‹œ์— ์ž‘์—…(ํ˜‘์—…)์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์šฉ์–ด ์œ„์ฃผ๋กœ ์„ค๋ช…ํ•˜๊ณ  ์ถ”ํ›„์—๋Š” ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค๋ฅผ ์ด์šฉํ•œ ๊นƒ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ์ „๋žต์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์šฉ์–ด ์„ค๋ช…

์ €์žฅ์†Œ(Repository)

์ €์žฅ์†Œ

์ž‘์—… ๋‚ด์šฉ์ด ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„์œผ๋กœ Local PC ์ €์žฅ์†Œ์™€ ์›๊ฒฉ ์ €์žฅ์†Œ(GitHub, GitLab...)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Local PC ์ €์žฅ์†Œ๋Š” ํ˜„์žฌ ์ž‘์—…ํ•˜๋Š” PC๋ฅผ ์˜๋ฏธํ•˜๊ณ , ์›๊ฒฉ ์ €์žฅ์†Œ๋Š” ์„œ๋ฒ„ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•ด ์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์ œ๊ณต๋˜๋Š” ๋น„๊ณต๊ฐœ ์ €์žฅ์†Œ ๊ฐœ์ˆ˜๋‚˜ ์ฐธ์—ฌ ์ธ์› ์ œ์•ฝ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ธŒ๋žœ์น˜(Branch)

๋‚˜๋ฌด์— ๋น„์œ ํ•œ Git Branch

์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ž ๋งก์€ ํŒŒํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณธ์ธ์ด ๋งก์€ ํŒŒํŠธ์˜ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๊ฐ€ ๋˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ”„๋กœ๊ทธ๋žจ์— ๋ฐ˜์˜์ด ๋˜์–ด์•ผ๊ฒ ์ฃ ? ์ด์ฒ˜๋Ÿผ ๋ถ€๋ถ„์ ์ธ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
๋งˆ์น˜ ๋‚˜๋ฌด์˜ ๊ธฐ๋‘ฅ(master, develop)์ด ์žˆ๊ณ  ๊ฐ€์ง€(branch)๊ฐ€ ๋ป—๋Š” ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ถ”ํ›„์—๋Š” ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ์ „๋žต์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…์„ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ณ‘ํ•ฉ(Merge)

branch์™€ merge ๋„์‹๋„

๋ป—์–ด๋‚˜๊ฐ„ ๋ธŒ๋žœ์น˜์˜ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ์ƒ์œ„ ๋ธŒ๋žœ์น˜์— ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ๋ธŒ๋žœ์น˜๋Š” master์—์„œ develop์„ ์ƒ์„ฑํ•˜๊ณ  develop์—์„œ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜์˜ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด develop์œผ๋กœ ๋ณ‘ํ•ฉ๋˜๊ฒ ์ฃ ?

์ปค๋ฐ‹(Commit)

Local ๊ณต๊ฐ„์—์„œ ์ž‘์—…ํ•œ ๋‚ด์šฉ์˜ ์ฒดํฌ ํฌ์ธํŠธ(์ €์žฅ ์‹œ์ )๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋ฐ˜์˜์ด ์•ˆ ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ํ‘ธ์‹œ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ์ž‘์—…์ด ์—…๋ฐ์ดํŠธ๋๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

push์™€ pull

ํ‘ธ์‹œ(Push)

์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ’€(Pull)

์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๊ณผ ์ž‘์—…ํ•˜๋‹ค ๋ณด๋‹ˆ ๋ˆ„๊ฐ€ ์–ธ์ œ ์–ด๋–ค ๋ธŒ๋žœ์น˜๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ์„ 'ํ’€(Pull)'์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์šด๋กœ๋“œ ํ›„ ๋ณ‘ํ•ฉ ์ž‘์—…๋„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํŽ˜์น˜(Fetch)

ํ’€(Pull)๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ, ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์—…๋ฐ์ดํŠธ ์ด๋ ฅ๋งŒ ํ™•์ธํ•˜๊ณ  ๋ณ‘ํ•ฉ์€ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฒดํฌ์•„์›ƒ(Checkout)

ํŠน์ • ๋ธŒ๋žœ์น˜๋กœ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด, ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ '์ฒดํฌ์•„์›ƒ'์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•