์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

1. ๊ฐœ์š”2. ์ƒ์„ธ
2.1. ๊ฐœ๋ฐœ ๋น„ํ™”
3. ๊ตฌ์กฐ4. ์žฅ๋‹จ์ 
4.1. ์žฅ์ 4.2. ๋‹จ์ 
5. ์„œ๋ฒ„ ํ˜ธ์ŠคํŒ… ๋ฐ ์ €์žฅ์†Œ
5.1. ์„œ๋น„์Šค์‹ Git ์ €์žฅ์†Œ5.2. ์ž์ฒด ํ˜ธ์ŠคํŒ…
6. ํด๋ผ์ด์–ธํŠธ7. Git ์‚ฌ์šฉ๋ฒ• ๋ฐฐ์šฐ๊ธฐ8. ๊ธฐํƒ€

1. ๊ฐœ์š”[ํŽธ์ง‘]

์˜คํ”ˆ์†Œ์Šค๊ณ„์˜ ์˜์›ํ•œ ์•„์ด๋Œ ๋ฆฌ๋ˆ„์Šค ํ† ๋ฐœ์ฆˆ๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ์กด ํˆด์ด ์—‰๋ง์ธ ๊ฒƒ์— ๋„ˆ๋ฌด ๋นก์นœ ๋ฐ”๋žŒ์— git์ด๋ผ๋Š” ์†Œ์Šค๊ด€๋ฆฌ ํˆด์„ ๋งŒ๋“ ๋‹ค. ๋ฆฌ๋ˆ„์Šค๋Š” ํ•˜๋„ ๋นก์นœ ๋‚˜๋จธ์ง€, ๋‹จ 2์ฃผ๋งŒ์— ์™„์„ฑํ•˜๋Š” ๊ธฐ์—ผ์„ ํ† ํ–ˆ๋‹ค. (๊ทธ๋Ÿฌ๊ณ ๋Š” ํ›„์— โ€œgit ๋งŒ๋“œ๋Š”๊ฒŒ ์ œ์ผ ์‰ฌ์› ์–ด์š”โ€๋ผ๋Š” ์ธํ„ฐ๋ทฐ๋กœ ๋‚˜์™€ ๊ฐ™์€ ๋น ๋Œ์ด๋ฅผ ์ง€๋ฆฌ๊ฒŒ ํ–ˆ๋‹ค.)

2. ์ƒ์„ธ[ํŽธ์ง‘]

Git์€ ๋งค์šฐ ๋น ๋ฅธ ์†๋„์™€ ๋ถ„์‚ฐํ˜• ์ €์žฅ์†Œ ์ง€์›์ด ํŠน์ง•์ด๋‹ค. ๋ฐฉ๋Œ€ํ•œ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด๋ฉด, ์†๋„ ๋ฌธ์ œ๋Š” ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ๊ฐœ๋ฐœ์˜ ํŠน์„ฑ์ƒ ์—ฌ๋Ÿฟ์ด ๋‹ฌ๋ ค๋“ค์–ด ์ž๊ธฐ ๋ง˜์— ๋“œ๋Š” ๊ฑธ ํ•˜๊ธฐ๋„ ํ•˜๋ฉฐ, ๋˜ํ•œ ๋ญ˜ ํ•˜๋‚˜ ์ž˜๋ชป ๋ถ™์˜€๋‹ค ์ด์ƒํ•œ ๊ฑธ ๊ฑด๋“œ๋ ค ๋งํ•˜๊ธฐ ์‰ฌ์šด๋ฐ, Git๋Š” ์ด๋Ÿฐ ํ™˜๊ฒฝ์˜ ํŠน์„ฑ์— ๋งž๊ฒŒ๋” ์ž˜ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค.

Git ์ž์ฒด๋Š” ์˜คํ”ˆ ์†Œ์Šค์ด๋ฉฐ ์ €์žฅ์†Œ๋Š” https://github.com/git/git์ด๋‹ค.[1] ๋ผ์ด์„ ์Šค๋Š” GPL์ด๋‹ค.

2.1. ๊ฐœ๋ฐœ ๋น„ํ™”[ํŽธ์ง‘]

๋ฆฌ๋ˆ„์Šค ํ† ๋ฅด๋ฐœ์Šค๋Š” ์ดˆ๊ธฐ์— ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ SVN(Subversion)์ด๋‚˜ CVS(Concurrent Versions System) ๊ฐ™์€ ๊ธฐ์กด์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์•„์˜ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค. ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ด์œ ๋Š” ๊ธฐ๋Šฅ์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์•˜๋‹ค๋Š”๊ฒŒ ์ •์„ค์ด๋ฉฐ, ์ˆ˜๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ณด๋‚ด์˜ค๋Š” ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ๋กœ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์˜ ๊ธฐ์—ฌ ๋‚ด์šฉ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€, ๊ทธ๋„ ๊ฒฐ๊ตญ ๋ฒ„ํ‹ธ ์ˆ˜ ์—†์—ˆ๋Š”์ง€ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋Š”๋ฐ, ๊ทธ๊ฐ€ ์„ ํƒํ•œ ๊ฒƒ์€ BitKeeper[2]๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด์—ˆ๋‹ค. BitKeeper๋Š” ์ƒ์šฉ S/W์˜€์ง€๋งŒ, ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ๊ณผ ๋น„๊ต์  ๋น ๋ฅธ ์„ฑ๋Šฅ ๋•๋ถ„์— ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ํ† ๋ฅด๋ฐœ์Šค์˜ ์ด๋Ÿฐ ์„ ํƒ์€ ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์ง„์˜์œผ๋กœ๋ถ€ํ„ฐ ์ง€ํƒ„์„ ๋ฐ›์•˜์œผ๋‚˜ ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด ์ง„์˜์—์„œ๋„ ๋งˆ๋•…ํ•œ ๋Œ€์•ˆ์„ ์ œ์‹œํ•˜์ง€๋Š” ๋ชปํ–ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๊ฐ€, BitKeeper ์ชฝ์—์„œ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์„ ๋ฌธ์ œ๋กœ ์ผ๋ถ€ ๋ฆฌ๋ˆ…์Šค ๊ฐœ๋ฐœ์ž๋“ค์„ ์ œํ•œํ•˜๋Š” ์ผ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜์ž, ํ† ๋ฅด๋ฐœ์Šค๋Š” BitKeeper๋ฅผ ๊ณ„์† ์“ธ์ง€ ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ• ์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ–ˆ๋Š”๋ฐ, ํ† ๋ฅด๋ฐœ์Šค์˜ ์„ ํƒ์€ ์ œ3์˜ ๊ธธ์ด์—ˆ๋‹ค. ๊ทธ๋ƒฅ ์ž์‹ ์ด ์ง์ ‘ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ , ๊ทธ๋ ‡๊ฒŒ ๋š๋”ฑ๋š๋”ฑ ์ง์ ‘ ๋งŒ๋“  ๊ฒŒ ๋ฐ”๋กœ Git์ด์—ˆ๋‹ค. ์ฐธ๊ณ ๋กœ, ์†Œ๋ฌธ์— ์˜ํ•˜๋ฉด 2์ฃผ๋งŒ์— ์™„์„ฑํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์†Œ์Šค๋ฅผ Git์„ ์ด์šฉํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ํŒฝ๋‹นํ•œ BitKeeper๋Š” ์œ ๋ฃŒ ์ •์ฑ…๋„ ํฌ๊ธฐํ•˜๊ณ  ๋ฌด๋ฃŒ๋กœ ํ’€์—ˆ์œผ๋ฉฐ ์‹ฌ์ง€์–ด ์•„ํŒŒ์น˜ ๋ผ์ด์„ ์Šค๋กœ ์†Œ์Šค๊นŒ์ง€ ๊ณต๊ฐœํ•œ ์ƒํƒœ์ด์ง€๋งŒ, ๋Œ€์„ธ๋ฅผ ๊ฑฐ์Šค๋ฅผ ์ˆœ ์—†์—ˆ๋‹ค. ํ˜„์žฌ๋Š” Git์ด SVN, Mercurial, CVS ๋“ฑ ์—ฌํƒ€ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ๋“ค์„ ํฐ ๊ฒฉ์ฐจ๋กœ ๋ˆ„๋ฅด๊ณ  ์••๋„์ ์ธ ์ ์œ ์œจ์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋‹ค. #

์„ค๋ น ํ† ๋ฅด๋ฐœ์Šค๊ฐ€ ๋ฆฌ๋ˆ…์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜์ง€ ์•Š์•˜๋”๋ผ๋„, Git์„ ๊ฐœ๋ฐœํ•จ์œผ๋กœ ์ธํ•ด์„œ ์กด๊ฒฝ์„ ๋ฐ›์•˜์„์ง€ ๋ชจ๋ฅธ๋‹ค. 2010๋…„ ์ดํ›„๋กœ ํ† ๋ฅด๋ฐœ์Šค๋Š” ๋” ์ด์ƒ ๋ฉ”์ธ ์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ๋กœ ํ™œ๋™ํ•˜์ง€ ์•Š๊ณ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋„˜๊ธด ์ƒํƒœ. ํ˜„์žฌ gitster์™€ peff ๋“ฑ์ด ๋ฉ”์ธ ์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ๋กœ ํ™œ๋™ํ•˜๊ณ  ์žˆ๋‹ค.

์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ๊ธฐ์กด์— ์น˜์—ดํ•˜๊ฒŒ ๊ฒฝ์Ÿํ•˜๋˜ ์ƒ์šฉ ์†Œํ”„ํŠธ์›จ์–ด ์—…์ฒด๋“ค์„ ๋ฌด์‹œํ•˜๊ณ  ์‹œ์žฅ๊ฒฝ์ œ๋ฅผ ๋ง๊ฐ€๋œจ๋ฆฌ๋Š” ๊ณต์‚ฐ์ฃผ์˜๋ผ๊ณ  ๊นŒ๋˜ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋Š” ๊ฒฐ๊ตญ ๊ทธ ์ž์‹ ๋“ค๋„ Git์„ ์ž˜ ์จ๋จน๋‹ค ๋ชปํ•ด ์•„์˜ˆ ๋Œ€ํ‘œ์ ์ธ ์ €์žฅ์†Œ์ธ GitHub๋ฅผ ์ธ์ˆ˜ํ•ด๋ฒ„๋ ธ๊ณ , ๊ตฌ๊ธ€, ํŠธ์œ„ํ„ฐ, ๋ชจ์งˆ๋ผ ์žฌ๋‹จ ๋“ฑ์—์„œ๋„ Git์„ ์ž˜ ์จ๋จน๊ณ  ์žˆ๋‹ค. ๊ตญ๋‚ด์—์„œ ์œ ๋ช…ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜ PHP ์œ„ํ‚ค์—”์ง„์ธ ๋ชจ๋‹ˆ์œ„ํ‚ค๋„ Git์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋‹ค. ์œˆ๋„์šฐ์˜ ๊ฒฝ์šฐ 2020๋…„ ๊ธฐ์ค€์œผ๋กœ 90%๊นŒ์ง€ Git ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋Š”๋ฐ, ํ•˜๋ฃจ 8500๊ฑด์˜ ์ปค๋ฐ‹๊ณผ ๋”๋ถˆ์–ด 1760๋ฒˆ์˜ ๋นŒ๋“œ๋ฅผ ๊ฑฐ์นœ๋‹ค๊ณ  ํ•œ๋‹ค.

3. ๊ตฌ์กฐ[ํŽธ์ง‘]

Git๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฒด์ œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค. ์ผ๋‹จ Git์˜ ์ž‘์—… ํด๋”๋Š” ์ „์ฒด ๊ธฐ๋ก๊ณผ ๊ฐ ๊ธฐ๋ก์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์ €์žฅ์†Œ์ด๋‹ค. ์ฆ‰ ์ž๊ธฐ ์ปดํ“จํ„ฐ์— ๋ชจ๋“  ํŒŒ์ผ์„ ๋‹ค ๋ฐ›์•„์„œ ํ•˜๋Š” ์…ˆ. ์œ„ํ‚ค๋กœ ์น˜์ž๋ฉด ์œ„ํ‚ค ์ „์ฒด๋ฅผ ๋‹ค ๋ฐ›์•„์„œ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.[3]

์ž‘์—…์ด ๋๋‚˜๋ฉด Git ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ๋‹ค์‹œ ๋ฐœํ–‰ํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์—์„œ ๋ฉ”์ธ ์ €์žฅ์†Œ์™€ ํ•ฉ์น˜๊ธฐ ์ „ ๋ฉ”์ธ ์ €์žฅ์†Œ์™€ ๊ฒฉ๋ฆฌ์‹œํ‚ค๊ณ  ๋”ฐ๋กœ ๊ฐœ๋ฐœ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ง€๋ผ๋Š”๊ฑธ ๋งŒ๋“ค์–ด ๊ฐ€์ง€์˜ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋  ์‹œ ๋ฉ”์ธ ์ €์žฅ์†Œ์™€ ํ•ฉ์น˜๊ณ  ๊ฐ€์ง€๋Š” ์‚ญ์ œ์‹œํ‚ค๋Š” ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋˜ํ•œ ๊ฐœ๋ฐœ ์ค‘๊ฐ„์ค‘๊ฐ„ ๊ผฌ๋ฆฌํ‘œ๋ฅผ ๋งค๊ฒจ ๊ฐœ๋ฐœ์„ ๋” ์ˆ˜์›”ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

4. ์žฅ๋‹จ์ [ํŽธ์ง‘]

4.1. ์žฅ์ [ํŽธ์ง‘]

  • ์˜คํ”„๋ผ์ธ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค. TFS ๋“ฑ์˜ ๊ธฐ์กด ์ค‘์•™์ง‘์ค‘ํ˜• ํ˜•์ƒ๊ด€๋ฆฌ ํˆด์€ ์˜คํ”„๋ผ์ธ ์ž‘์—…์„ ์•„์˜ˆ ์ง€์›ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ๋งค์šฐ ์ œํ•œ์ ์œผ๋กœ๋งŒ ์ง€์›ํ•˜์˜€๋‹ค. ๋ณธ์ธ์ด ํŠน์ • ํŒŒ์ผ์„ ์ฒดํฌ์•„์›ƒํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์„œ๋ฒ„์— ๋“œ๋Ÿฌ๋‚˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์˜จ๋ผ์ธ ์ƒํƒœ์—์„œ ์ฒดํฌ์•„์›ƒํ•œ ํŒŒ์ผ์€ ์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ๋„ ๊ณ„์† ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋‚˜, ์ด ๊ฒฝ์šฐ์—๋Š” ์ถ”๊ฐ€์ ์ธ ํ˜•์ƒ๊ด€๋ฆฌ๊ฐ€ ์•ˆ๋œ๋‹ค. git๋Š” ์ €์žฅ์†Œ๋ฅผ ์ผ๋‹จ ๋กœ์ปฌ์— ๋ณต์ œํ•˜๊ณ , ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์žˆ๋Š” ํžˆ์Šคํ† ๋ฆฌ๋„ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๋ฏ€๋กœ, ์„œ๋ฒ„์—์„œ ์ƒˆ ์ž๋ฃŒ๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์—†์„ ๋ฟ์ด์ง€ ์ด์™ธ์—๋Š” ์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ๋„ ๋Œ€๋ถ€๋ถ„์˜ ํ˜•์ƒ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ผ์ข…์˜ ๋กœ์ปฌ ์„œ๋ฒ„๋กœ ์ž‘์šฉํ•˜๋Š” ์…ˆ.
  • ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ๊ฐ๊ฐ์˜ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ชจ๋‘ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ์„œ๋ฒ„์˜ ์ฃผ์ธ์ด ๋˜๋Š” ์…ˆ์ด๋ฏ€๋กœ ์„œ๋ฒ„๊ฐ€ ์ง์ ‘ ํ•ด์•ผ ๋  ์ผ๋“ค์ด ๋งŽ์ด ์ค„์–ด๋“ ๋‹ค.
  • ์ผ์‹œ์ ์ธ ์„œ๋ฒ„ ์žฅ์• ๊ฐ€ ์žˆ์–ด๋„ ๊ฐœ๋ฐœ์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ.
  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๋ฟ์ธ ๊ธฐ์กด ํ˜•์ƒ๊ด€๋ฆฌ์— ๋น„ํ•ด ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์„ธ์šธ ์ˆ˜ ์žˆ๋‹ค. ์ค‘๊ฐ„ ์„œ๋ฒ„๋ฅผ ๋‘”๋‹ค๋“ ์ง€, ๋ถ€์„œ๋ณ„๋กœ ๋”ฐ๋กœ ์„œ๋ฒ„๋ฅผ ๋‘”๋‹ค๋“ ์ง€ ํ•˜๋Š” ๊ตฌ์„ฑ์ด ์ž์œ ๋กญ๊ฒŒ ๊ฐ€๋Šฅ.
  • ๊ฐ€์ง€์น˜๊ธฐ(branch)๊ฐ€ ๋น„๊ต์  ๊ฐ€๋ณ๋‹ค. ๊ฐ€์ง€์น˜๊ธฐ ์ž์ฒด๋ฅผ git์˜ ์žฅ์ ์œผ๋กœ ๊ผฝ๊ธฐ๋„ ํ•˜์ง€๋งŒ ์ด๋Š” ํ˜„์กดํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ํ˜•์ƒ๊ด€๋ฆฌ ๋„๊ตฌ๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์‹ค์งˆ์ ์ธ ์ฐจ์ด๋Š” ๊ทธ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์— ์žˆ๋‹ค๊ณ  ๋ด์•ผ ํ•œ๋‹ค. git๋Š” ๋ธŒ๋žœ์นญ์ด ๋งค์šฐ ์‰ฝ๊ณ  ๊ฐ€๋ฒผ์›Œ ์›ํ•˜๋Š” ๋งŒํผ ๋ณ„ ์ œ์•ฝ ์—†์ด ์ƒ์„ฑํ•˜๊ณ  ์‚ญ์ œํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค. git๋งŒ ์‚ฌ์šฉํ•ด์˜ค๋˜ ์‚ฌ๋žŒ์€ ๋‹น์—ฐํ•˜๊ฒŒ ๋А๊ปด์งˆ ๊ฒƒ์ด๊ณ  ์ด๊ฒŒ ์™œ ์žฅ์ ์ธ์ง€์กฐ์ฐจ ๋ชจ๋ฅผ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ๊ธฐ์กด ํ˜•์ƒ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋˜ ์‚ฌ๋žŒ๋“ค์€ ๋ธŒ๋žœ์นญ ํ•˜๋‚˜ ํ•˜๋ ค๊ณ  ์ˆ˜ ์‹œ๊ฐ„์˜ ๋ฏธํŒ…์„ ํ•ด์•ผ ํ•˜๋˜ ๋•Œ๋„ ์žˆ์—ˆ๋‹ค.
  • ๋ณ‘ํ•ฉ(merge)์—์„œ ๋ฌธ์ œ๊ฐ€ ๋œ ๋ฐœ์ƒํ•œ๋‹ค. ์„œ๋ฒ„์˜ ์ž๋ฃŒ๋ฅผ ๊ฐ€์ ธ์™€(fetch) ๋กœ์ปฌ์—์„œ ๋ณ‘ํ•ฉํ•˜๊ณ  ์ด๋ฅผ ๋‹ค์‹œ ์˜ฌ๋ฆฌ๋Š” ํ˜•ํƒœ์ด๊ธฐ ๋•Œ๋ฌธ. ๋ฌผ๋ก  ์•„์˜ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ์ˆ˜๋Š” ์—†์œผ๋‚˜, ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ ๋•๋ถ„์— ์˜ˆ๊ธฐ์น˜ ๋ชปํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ๋ณ‘ํ•ฉ ๋ฌธ์ œ ๋ฐœ์ƒ ๋นˆ๋„๊ฐ€ ๋‚ฎ์•„์ง„๋‹ค.
  • ์Šคํ…Œ์ด์ง•์„ ์ง€์›ํ•œ๋‹ค. ๋‹จ์ˆœํžˆ ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ๋กœ์ปฌ ๋ณ€๋™์‚ฌํ•ญ์„ ์–˜๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ , ์•„์˜ˆ ์ปค๋ฐ‹ํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์Šคํ…Œ์ด์ง• ๋‹จ๊ณ„๊ฐ€ ๋”ฐ๋กœ ์žˆ๋‹ค. ๋ฌผ๋ก  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ํ˜•์ƒ๊ด€๋ฆฌ ๋„๊ตฌ์ฒ˜๋Ÿผ ๋ฐ”๋กœ ์ปค๋ฐ‹ํ•˜๋Š” ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • ์ง์ ‘ ํ˜ธ์ŠคํŒ…์„ ํ•  ๊ฒฝ์šฐ ์ƒ์—…์šฉ ์šฉ๋„๋กœ๋„ ๋ฌด๋ฃŒ๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค.

4.2. ๋‹จ์ [ํŽธ์ง‘]

  • ๊ธฐ์กด ํ˜•์ƒ๊ด€๋ฆฌ ๋„๊ตฌ์— ๋น„ํ•ด ๋œ ์ง๊ด€์ ์ด๊ณ  ๋ฐฐ์šฐ๊ธฐ ์–ด๋ ต๋‹ค. ํŠนํžˆ ์ค‘์•™ ์ง‘์ค‘ํ˜• ํ˜•์ƒ๊ด€๋ฆฌ ๋„๊ตฌ์— ์ต์ˆ™ํ•œ ์‚ฌ๋žŒ์ผ์ˆ˜๋ก ๊ท€์ฐฎ๊ณ  ์–ด๋ ค์›Œ์ง€๋Š”๋ฐ, ์šฉ์–ด๋„ ์ปจ์…‰ํŠธ๋„ ์ฒ˜๋ฆฌ๊ณผ์ •๋„ ์ „ํ˜€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ. ์ฒดํฌ์•„์›ƒ ํ›„ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ ์ปค๋ฐ‹ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜๋Š” ์ค‘์•™์ง‘์ค‘ํ˜• ๋„๊ตฌ์— ๋น„ํ•ด git๋Š” ์ปค๋ฐ‹, ํ‘ธ์‹œ, ํ’€, ๋จธ์ง€, ํŽ˜์น˜ ๋“ฑ ์ˆ˜๋งŽ์€ ์šฉ์–ด๋“ค์ด ์กด์žฌํ•˜๋ฉฐ ๊ธฐ์กด์˜ ์ง€์‹์ด ์ด ์ƒˆ๋กœ์šด ์ปจ์…‰ํŠธ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐ์— ํฌ๊ฒŒ ๋ฐฉํ•ด๊ฐ€ ๋œ๋‹ค. ๋˜ํ•œ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ๊ฒฝ์šฐ ์–ด๋””๊นŒ์ง€๊ฐ€ ์„œ๋ฒ„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ํ–‰์œ„์ด๊ณ  ์–ด๋””๊นŒ์ง€๊ฐ€ ๋กœ์ปฌ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ธ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ ๋ช…๋ น์–ด ํ•˜๋‚˜ํ•˜๋‚˜์— ๋ฒŒ๋ฒŒ ๋–จ๊ฒŒ ๋œ๋‹ค. ์„œ๋ฒ„์— ์žˆ๋Š” ์ž๋ฃŒ์™€ ๋กœ์ปฌ์˜ ์ž๋ฃŒ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ปค๋ฐ‹ ํ›„์— ๋ฌด์Šจ ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚˜๋Š”์ง€ ๋ฏธ๋ฆฌ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ธฐ์กด ํ˜•์ƒ๊ด€๋ฆฌ์— ๋น„ํ•˜๋ฉด ํ™•์‹คํžˆ ๋œ ์ง๊ด€์ ์ด๋‹ค. ํ•œ ๋ฒˆ ์ต์ˆ™ํ•ด์ง€๋ฉด ๋ณ„ ๊ฒƒ ์•„๋‹ˆ๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ๋ฐ”๋กœ ์ด ๋ฌธ์ œ ๋•Œ๋ฌธ์— ๊ธฐ์กด ํ˜•์ƒ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ๋‹ค.
  • ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๋ธŒ๋žœ์น˜๋‚˜ ์—ฌ๋Ÿฌ ํƒœ๊ทธ์— ๊ฑธ์ณ์„œ ์ปค๋ฐ‹์„ ํ•  ์ˆ˜ ์—†๋‹ค. ๋‚ด๊ฐ€ ๋งŒ๋“  ์‚ฌ์†Œํ•œ ๋ณ€๋™์‚ฌํ•ญ์ด ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์— ์ž๋™์ ์œผ๋กœ ์•Œ๋ ค์ง€์ง€ ์•Š๊ณ , ๋‚˜์ค‘์— ์ทจํ•ฉํ•˜๋Š” ์‹œ์ ์ด ๋ผ์„œ์•ผ ๋ฐ˜์˜๋œ๋‹ค.
  • ํ•˜๋‚˜์˜ ์ €์žฅ์†Œ๊ฐ€ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ ์ „์ฒด๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ•์ œ๋˜์–ด ์žˆ์–ด ์ผ๋ถ€๋งŒ ๋ธŒ๋žœ์นญ์„ ํ•œ๋‹ค๋“ ์ง€ ํด๋ก ์„ ํ•œ๋‹ค๋“ ์ง€ ํ•˜๋Š” ์ผ์„ ํ•  ์ˆ˜ ์—†๋‹ค. ์ •์ฑ…์ ์ธ ๋ถ€๋ถ„์ด๋ผ ๊ด€์ ์— ๋”ฐ๋ผ ์žฅ์ ์ด ๋  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ๊ผญ ํ•„์š”ํ•œ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋‹จ์ ์ด ๋  ์ˆ˜ ์žˆ๋‹ค.
  • push๋ฅผ ํ–ˆ๋‹ค ํ•ด์„œ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์˜์›ํžˆ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ๋œ๋‹ค๊ณ  ์žฅ๋‹ดํ•  ์ˆ˜ ์—†๋‹ค. ์ค‘์•™ ์ง‘์ค‘ํ˜• ํ˜•์ƒ๊ด€๋ฆฌ์—์„œ๋Š” ์ผ๋‹จ ์ฒดํฌ์ธ์„ ํ•˜๊ณ  ๋‚˜๋ฉด ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๋Š” ํ•œ์—๋Š” ํ•ญ์ƒ ์•ˆ์ „ํ•˜๊ณ  ์–ธ์ œ๋“  ๊ณผ๊ฑฐ ๊ธฐ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ์œผ๋‚˜, git์—์„œ๋Š” push๋ฅผ ํ•œ ๋‚ด์šฉ์ด๋ผ ํ•˜๋”๋ผ๋„ ํ•ด๋‹น ๋ธŒ๋žœ์น˜๊ฐ€ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋˜๊ธฐ ์ „์— ์‚ญ์ œ๋ผ๋ฒ„๋ฆฌ๋ฉด ๋‚˜์ค‘์— ํ•ด๋‹น ๋‚ด์šฉ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.
  • ์ปค๋ฐ‹ ID๊ฐ€ ๊ธด 16์ง„์ˆ˜ ์ˆซ์ž(SHA-1 ํ•ด์‹œ๊ฐ’)๋ผ ๊ธฐ์–ตํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๊ณ  ํ•ญ์ƒ ๋ณต์‚ฌ-๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ๋”ฑํžˆ ํฐ ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋‹จ์ˆœํ•œ 10์ง„์ˆ˜ ์ˆซ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” TFS ๋“ฑ์— ๋น„ํ•ด ๋ณต์žกํ•œ ๊ฒƒ์€ ์‚ฌ์‹ค.
  • ์—ญ์‹œ ์†Œ์†Œํ•˜์ง€๋งŒ ์ „์ฒด๋ฅผ ๋ฐ›์•„์„œ ์ž‘์—…ํ•ด์•ผ ๋œ๋‹ค๋Š” ๋ถ€๋ถ„๋„ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” ๋‹จ์ ์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ๋กœ์ปฌ ์ €์žฅ์†Œ ์‚ฌ์ด์ฆˆ๊ฐ€ ๊ทธ๋ฆฌ ํฌ์ง€ ์•Š๋‹ค์ง€๋งŒ, ๊ธฐ์กด ํ˜•์ƒ๊ด€๋ฆฌ ํˆด์ด ์›ํ•˜๋Š” ํŒŒ์ผ ํ•˜๋‚˜๋งŒ ๋œ๋  ๋ฐ›์•„์„œ ์ž‘์—…ํ•˜๊ณ  ์ฒดํฌ์ธํ•  ์ˆ˜๋„ ์žˆ๋Š” ๊ฒƒ์— ๋น„ํ•ด์„œ๋Š” ์ž๋ฆฌ๋ฅผ ๋” ์ฐจ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๋งž๋‹ค.

5. ์„œ๋ฒ„ ํ˜ธ์ŠคํŒ… ๋ฐ ์ €์žฅ์†Œ[ํŽธ์ง‘]

5.1. ์„œ๋น„์Šค์‹ Git ์ €์žฅ์†Œ[ํŽธ์ง‘]

  • GitHub: git์ด ์œ ๋ช…ํ•ด์ง€๋ฉด์„œ ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด์˜ ์„ฑ์ง€๋กœ ๋– ์˜ฌ๋ž๋‹ค. GitHub์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์‚ฌํ•ญ์€ ํ•ด๋‹น ํ•ญ๋ชฉ ์ฐธ์กฐ.
  • Bitbucket: Github์˜ ๋น„๊ณต๊ฐœ ํ”„๋กœ์ ํŠธ ๊ธฐ๋Šฅ์ด ์œ ๋ฃŒ์˜€์„ ์‹œ์ ˆ์—๋Š” "๋น„๊ณต๊ฐœ ํ”„๋กœ์ ํŠธ๊ฐ€ ํ•„์š”ํ•œ๋ฐ ์œ ๋ฃŒ๋ผ ์“ฐ๊ธฐ ์• ๋งคํ•˜๋‹ค + ํŒ€์›์ด ๋ช‡ ๋ช… ์•ˆ๋œ๋‹ค" ๊ฐ™์€ ์ƒํ™ฉ์ด๋ผ๋ฉด ๊ดœ์ฐฎ์€ ๋Œ€์•ˆ์ด ๋  ์ˆ˜ ์žˆ์—ˆ๋‹ค.[4] Confluence, JIRA ๋“ฑ์œผ๋กœ ์œ ๋ช…ํ•œ Atlassian์˜ ์„œ๋น„์Šค๋กœ 5๋ช…[5] ์ดํ•˜๊ฐ€ ์ฐธ์—ฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ผ๋ฉด ๋น„๊ณต๊ฐœ ํ”„๋กœ์ ํŠธ๋„ ๋ฌด๋ฃŒ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • GitLab - ์ธ์›์ˆ˜์— ๊ด€๊ณ„ ์—†์ด ๋ฌด์ œํ•œ์œผ๋กœ ๋ฌด๋ฃŒ ๋น„๊ณต๊ฐœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • Azure DevOps (Visual Studio Online) - ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ธฐ์กด TFS ๋ฐฉ์‹๊ณผ git ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

5.2. ์ž์ฒด ํ˜ธ์ŠคํŒ…[ํŽธ์ง‘]

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

์œˆ๋„๋ผ๋ฉด ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ Azure DevOps(๊ตฌ Team Foundation Server)๋ฅผ ํ†ตํ•ด Git ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ฒ„ ์ž์ฒด์—์„œ ๊ธฐ์กด TFS์™€ git ๋ฐฉ์‹์„ ๋™์‹œ์— ์ง€์›ํ•œ๋‹ค. ๋‹ค๋งŒ MS์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹ซ๋‹ค๋ฉด ๊ฐ„๋‹จํ•œ ๋Œ€์•ˆ์ด ์—†์—ˆ๋Š”๋ฐ, GitBucket์ด๋ผ๋Š” JVM ๊ธฐ๋ฐ˜์— Scala๋กœ GitHub๋ฅผ ํ‰๋‚ด๋‚ด์–ด ์ž‘์„ฑ๋œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ๊ทธ๋žจ์ด ๋“ฑ์žฅํ–ˆ๋‹ค. JVM ๊ตฌ๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ๋จน๋Š” ๋‹จ์ ์„ ์ œ์™ธํ•˜๋ฉด HTTP๋Š” ๋ฌผ๋ก  SSH์™€ ๋ฉ”์ผ ์•Œ๋ฆผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์„œ๋ฒ„ ๊ธฐ๋Šฅ์„ ์ž์ฒด์ ์œผ๋กœ ์ง€์›ํ•˜๋ฉฐ, GitHub์˜ ์ƒ๋‹นํžˆ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ๋งค์šฐ ๋น„์Šทํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ด ๋†“์•˜๊ธฐ ๋•Œ๋ฌธ์— GitHub์„ ์“ฐ๋˜ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๊ฑฐ์˜ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๊ทธ๋ ‡์ง€ ์•Š๋”๋ผ๋„ GitHub์ฒ˜๋Ÿผ ๋งค์šฐ ์‰ฝ๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

6. ํด๋ผ์ด์–ธํŠธ[ํŽธ์ง‘]

์ผ๋‹จ ์ปค๋งจ๋“œ ํ”„๋กฌํ”„ํŠธ ๋ฐฉ์‹ Git์€ ์œˆ๋„์šฐ, macOS, ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ „๋ถ€ ์ง€์›ํ•œ๋‹ค. ๊ณต์‹ ์‚ฌ์ดํŠธ์—์„œ ๋‚ด๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ์ผ๋ถ€ GUI ํˆด๋“ค์€ ๋‚ด๋ถ€์ ์œผ๋กœ ์ปค๋งจ๋“œ๋ผ์ธ ํˆด์„ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜์–ด์žˆ๊ธฐ๋„ ํ•˜๋‹ค.

Git ์ž์ฒด์—๋„ gitk๊ณผ git-gui๋ผ๋Š” GUI ํˆด์„ ๊ธฐ๋ณธ ์ œ๊ณตํ•˜๊ณ  ์žˆ์œผ๋‚˜, ํ”„๋กฌํฌํŠธ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์ณ์•ผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ธฐ๋Šฅ์ด ํ•œ์ •์ ์ด๋ผ ์•„๋ž˜์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

์œˆ๋„์šฐ/๋งฅ ์ง„์˜์€ SourceTree, ๋ฆฌ๋ˆ…์Šค ์ง„์˜์€ SmartGit์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๋˜ํ•œ ๋””์ž์ธ๊ณผ ๊ธฐ๋Šฅ ๋ฉด์—์„œ ์ข‹์€ ํ‰๊ฐ€๋ฅผ ๋ฐ›๋Š” GitKraken๊ณผ GitHub์—์„œ ์ง์ ‘ ๋‚ด๋†“์€ GitHub Desktop๋„ ์žˆ๋‹ค. ์œˆ๋„์šฐ ์ „์šฉ์œผ๋กœ๋Š” SubVersion ์‹œ์ ˆ๋ถ€ํ„ฐ ์œ ๋ช…ํ–ˆ๋˜ TortoiseGit๊ฐ€ ์žˆ๋Š”๋ฐ, ์œˆ๋„์šฐ ํƒ์ƒ‰๊ธฐ์™€ ์—ฐ๋™๋˜๋Š” ๋ฐฉ์‹์ด๋ผ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ , SubVersion ์‹œ์ ˆ์— ๋งŽ์ด ์“ฐ์˜€๋˜ TortoiseSVN๊ณผ ์‚ฌ์šฉ๋ฒ•์ด ๊ฑฐ์˜ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— SubVersion ์“ฐ๋˜ ์‚ฌ๋žŒ๋“ค์ด ๋„˜์–ด์˜ค๊ธฐ ์ข‹๋‹ค.

๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์ด๋ผ๋ฉด gitํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋‚ด์žฅ๋œ ์ž์ฒด git GUI๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฏ€๋กœ ์ด๊ฑธ ์‚ฌ์šฉํ•ด๋„ ์ƒ๊ด€์—†๋‹ค. ๋ฌผ๋ก  SourceTree ๊ฐ™์€ ์™ธ๋ถ€ ํˆด์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค. ๋ฉ”๋‰ด์—์„œ ์ฐพ์•„ ๋“ค์–ด๊ฐ€๋ ค๋ฉด ๋ณด๊ธฐ(V)->ํŒ€ ํƒ์ƒ‰๊ธฐ(M) ๋‹จ์ถ•ํ‚ค๋Š” Ctrl+\, Ctrl+M[6] ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์‹œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ๋„ ๊ฐ€๋Šฅ.

7. Git ์‚ฌ์šฉ๋ฒ• ๋ฐฐ์šฐ๊ธฐ[ํŽธ์ง‘]

์ธํ„ฐ๋„ท์— ๊ณต๊ฐœ๋œ ์ž๋ฃŒ๊ฐ€ ๋งค์šฐ ๋งŽ๋‹ค.

8. ๊ธฐํƒ€[ํŽธ์ง‘]

  • Windows์šฉ Git์€ ๊ธฐ๋ณธ ์„ค์น˜ ๊ฒฝ๋กœ๊ฐ€ C:\Program Files ๋‚ด๋ถ€์ธ๋ฐ, ํด๋”๋ช… Program Files์—๋Š” ๊ณต๋ฐฑ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด Git Bash ์‚ฌ์šฉ ์‹œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ค์น˜ํ•  ๋•Œ ์ด๋ฆ„์— ๊ณต๋ฐฑ์ด ํฌํ•จ๋œ ํด๋”๊ฐ€ ์—†๋Š” ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด ์ฃผ์ž.
  • Git์€ ํŒŒ์ผ์ด๋‚˜ ์ปค๋ฐ‹ ๋“ฑ ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๋ฅผ SHA-1์œผ๋กœ ํ•ด์‹œํ•œ ์‹๋ณ„์ž๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, SHA-1์€ ์ถฉ๋Œ ์œ„ํ—˜์„ฑ์„ ๋„˜์–ด, 2017๋…„์— ๊ตฌ๊ธ€์— ์˜ํ•ด์„œ SHA-1 ์ „์ฒด์˜ ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐํ˜€์กŒ๊ธฐ์— ๋” ์ด์ƒ ์•ˆ์ „ํ•˜์ง€ ์•Š๊ณ , ๊ตฌ๊ธ€๋„ Git์— ์ด ์œ„ํ—˜์„ฑ์„ ์ „๋‹ฌํ•˜์˜€๋‹ค. ์ด์— ํ† ๋ฅด๋ฐœ์Šค๋Š” "Git์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์‹œํ•˜๊ธฐ๋งŒ ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ๊ฑฐ๊ธฐ์— ํƒ€์ž…๊ณผ ๊ธธ์ด ํ•„๋“œ๋ฅผ ์ธก๋Ÿ‰ํ•œ๋‹ค"๋ฉฐ ๋™์˜ํ•˜์ง€ ์•Š์•˜๋‹ค. #

[1] ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ๋‹ต์ง€ ์•Š๊ฒŒ README๊ฐ€ ํ—ˆ์ ‘์Šค๋Ÿฝ๊ณ  ์†Œ์Šค ์ฝ”๋“œ๋„ ํด๋”๋กœ ๋ถ„๋ฅ˜๋˜์ง€ ์•Š๊ณ  ๋‚œ์žกํ•˜๋‹ค. ํ”„๋กœ์ ํŠธ ์ตœ์ƒ๋‹จ์— ํ‘œ์‹œ๋œ ๋Œ€๋กœ ๋ฐฐํฌ ์ „์šฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ผ ๊ทธ๋Ÿฐ ๋“ฏ ํ•˜๋‹ค.
[2] ์‚ฌ์ดํŠธ๋Š” www.bitkeeper.org์ด๋‹ค. ์ถœ์ฒ˜
[3] Git์ด ์•„๋‹ˆ๋”๋ผ๋„ DVCS(๋ถ„์‚ฐ ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์Šคํ…œ)์— ํ•ด๋‹นํ•˜๋Š” Mercurial์ด๋‚˜ Bazaar๋„ ํ•ด๋‹นํ•˜๋Š” ์‚ฌํ•ญ์ด๋‹ค.
[4] GitHub๋„ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ ์ธ์ˆ˜ํ•œ ๋’ค๋กœ๋Š” ํŒ€์›์ด 3๋ช… ์ดํ•˜์ธ ๋น„๊ณต๊ฐœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •์ฑ…์„ ๋ณ€๊ฒฝํ•ด์„œ ๋‹จ์ˆœํžˆ ๋น„๊ณต๊ฐœ ํ”„๋กœ์ ํŠธ๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์—์„œ๋Š” ๊ตณ์ด ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†์–ด์กŒ๋‹ค.
[5] ๋ฉ”์ผ๋กœ ํšŒ์›์„ ์ดˆ๋Œ€ํ•˜๋ฉด 8๋ช…๊นŒ์ง€ ๊ฐ€๋Šฅ.
[6] Ctrl ํ‚ค๋ฅผ ๋ˆ„๋ฅธ ์ฑ„๋กœ \๊ณผ, M์„ ์ˆœ์„œ๋Œ€๋กœ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค.