๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์„ฑ

[Git/GitHub] "๊ทธ๋ฆผ๊ณผ ์‹ค์Šต์œผ๋กœ ๋ฐฐ์šฐ๋Š” ๊นƒ & ๊นƒํ—ˆ๋ธŒ ์ž…๋ฌธ" - ๊ฐœ๋ฐœ์ž ํ•„์ˆ˜ ์ž…๋ฌด์„œ ์ถ”์ฒœ

hyonie 2024. 11. 3. 23:52

 ํšŒ์‚ฌ์—์„œ ํ”„๋กœ์ ํŠธ ํ˜‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉฐ, ์ฝ”๋“œ ์ถฉ๋Œ์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜๊ณ  ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ์•„๊ฐ€์•ผ ํ•˜๋Š” ์ƒํ™ฉ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. git add, git commit, git push ๊ฐ™์€ ๊ธฐ๋ณธ ๋ช…๋ น์–ด๋Š” ์ต์ˆ™ํ–ˆ์ง€๋งŒ, ์ œ๋Œ€๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ํ™•์‹ ์€ ๋ถ€์กฑํ–ˆ์Šต๋‹ˆ๋‹ค. Git๊ณผ GitHub๋ฅผ ์ข€ ๋” ์ฒด๊ณ„์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•˜๊ณ  ์‹ถ๋˜ ์ฐจ์— โ€œ๊ทธ๋ฆผ๊ณผ ์‹ค์Šต์œผ๋กœ ๋ฐฐ์šฐ๋Š” ๊นƒ & ๊นƒํ—ˆ๋ธŒ ์ž…๋ฌธโ€์„ ์ฝ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฑ…์€ ์ €์™€ ๊ฐ™์€ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋‚˜ ๋น„์ „๊ณต์ž๋„ ๋ถ€๋‹ด ์—†์ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์นœ์ ˆํ•œ ๊ฐ€์ด๋“œ๋ถ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

 


์ฑ…์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ๋ฐ ์ฃผ์š” ๋‚ด์šฉ

์ด ์ฑ…์€ ๊ธฐ์ดˆํŽธ, ์‹ค์ „ํŽธ, ๊ทธ๋ฆฌ๊ณ  GUIํŽธ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์žฅ์€ ์‹ค์Šต ์œ„์ฃผ๋กœ ์„ค๋ช…๋˜์–ด ์žˆ์–ด์„œ ์‹ค์ œ๋กœ ๋”ฐ๋ผํ•˜๋ฉด์„œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
 


1. ๊ธฐ์ดˆํŽธ - Git ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์ฒซ ์ปค๋ฐ‹ ๊ณผ์ • ๋”ฐ๋ผํ•˜๊ธฐ

 Git์„ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด, ์„ค์น˜ ๋ฐฉ๋ฒ•๊ณผ ์ดˆ๊ธฐ ์„ค์ •์„ ๋จผ์ € ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. 1์žฅ๊ณผ 2์žฅ์—์„œ๋Š” Git์„ ์„ค์น˜ํ•˜๊ณ  ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋ฉฐ, Git์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ์ดˆ์ ์ธ ์„ค์ •๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Git์„ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ์†์‰ฝ๊ฒŒ ์ค€๋น„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 
3์žฅ์—์„œ๋Š” Git์˜ ์›๋ฆฌ๋ฅผ ์„ค๋ช…ํ•˜๋Š”๋ฐ, Git์„ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ์ค‘์š”ํ•œ ์„ธ ๊ฐ€์ง€ ์˜์—ญ์ธ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ(Working Directory), ์Šคํ…Œ์ด์ง• ์˜์—ญ(Staging Area), ๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ(Repository)์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค.
 
 

 

  • ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ(Working Directory): ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ์˜์—ญ. ์—ฌ๊ธฐ์„œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ , ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ์Šคํ…Œ์ด์ง• ์˜์—ญ(Staging Area): ์ปค๋ฐ‹์„ ๋งŒ๋“ค๊ธฐ ์ „์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž„์‹œ๋กœ ๋ณด๊ด€ํ•˜๋Š” ์˜์—ญ์œผ๋กœ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ์ฒ˜๋Ÿผ ํ•„์š”ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋งŒ ๋‹ด์•„๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ(Repository): ์ตœ์ข…์ ์œผ๋กœ ์ปค๋ฐ‹๋œ ๋‚ด์šฉ์ด ์ €์žฅ๋˜๋Š” ์˜์—ญ. Git์€ ๋ชจ๋“  ์ปค๋ฐ‹์„ ์ด๊ณณ์— ๊ธฐ๋กํ•˜์—ฌ, ํ•„์š”ํ•  ๋•Œ ์–ธ์ œ๋“  ๊ณผ๊ฑฐ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ฑ…์—์„œ๋Š” Git์˜ ์„ธ ๊ฐ€์ง€ ์˜์—ญ์„ ์‡ผํ•‘๋ชฐ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋น„์œ ํ•˜์—ฌ, ๋‹จ๊ณ„๋งˆ๋‹ค ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, git add ๋ช…๋ น์–ด๋Š” ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋ฌผ๊ฑด์„ ๋‹ด๋“ฏ์ด ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ณผ์ •์ด๋ฉฐ, git commit ๋ช…๋ น์–ด๋Š” ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธด ๋ฌผ๊ฑด์„ ์ตœ์ข… ๊ตฌ๋งคํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ์— ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.
 
์ด์ฒ˜๋Ÿผ Git์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์„ธ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด, ์ž‘์—…์„ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.
 
 


 

2. ์‹ค์ „ํŽธ - ์‹ค๋ฌด์—์„œ ์œ ์šฉํ•œ Git ๋ช…๋ น์–ด์™€ ํ˜‘์—… ๊ธฐ๋Šฅ ์ตํžˆ๊ธฐ

์‹ค์ „ํŽธ์—์„œ๋Š” Git์„ ์‹ค๋ฌด์—์„œ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ git rebase์™€ git reflog๋Š” ์‹ค์ˆ˜๋กœ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜, ์ปค๋ฐ‹ ๊ธฐ๋ก์„ ์ •๋ฆฌํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•œ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
 

 
 

  • git rebase: ์ปค๋ฐ‹์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜, ๋ถˆํ•„์š”ํ•œ ์ปค๋ฐ‹์„ ์‚ญ์ œํ•˜์—ฌ ๊ธฐ๋ก์„ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. pick, reword, fixup, squash์™€ ๊ฐ™์€ ์˜ต์…˜์„ ํ†ตํ•ด ์ปค๋ฐ‹์„ ์žฌ์ •๋ ฌํ•˜๊ฑฐ๋‚˜ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์–ด ํ˜‘์—… ์‹œ ์ฝ”๋“œ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ •๋ˆํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • git reflog: Git์—์„œ ๋ฐœ์ƒํ•œ ๋ชจ๋“  ์ž‘์—… ๊ธฐ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด, ์‹ค์ˆ˜๋กœ ์ž˜๋ชป๋œ ์ปค๋ฐ‹์ด๋‚˜ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ–ˆ์„ ๋•Œ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ์ „ ์žฅ์น˜์ž…๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ณผ๊ฑฐ ์ปค๋ฐ‹์„ ๋˜๋Œ์•„๊ฐ€๊ฑฐ๋‚˜ ์‹ค์ˆ˜๋ฅผ ๋ฐ”๋กœ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜‘์—… ์ค‘ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์ˆ˜๋ฅผ ๋Œ€์ฒ˜ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์†Œ๊ฐœ๋ฉ๋‹ˆ๋‹ค. git reset๊ณผ git revert๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ์ปค๋ฐ‹์„ ๋˜๋Œ๋ฆฌ๊ฑฐ๋‚˜ ์ทจ์†Œํ•˜์—ฌ ์ž‘์—… ์ƒํƒœ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 

 
 
 

  • git reset: ํŠน์ • ์ปค๋ฐ‹์œผ๋กœ ๋˜๋Œ์•„๊ฐ€๊ฑฐ๋‚˜, ์ปค๋ฐ‹ ์ž์ฒด๋ฅผ ์‚ญ์ œํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ํ˜‘์—… ์ค‘ ๋ถˆํ•„์š”ํ•œ ์ปค๋ฐ‹์„ ์‹ค์ˆ˜๋กœ ์˜ฌ๋ ธ์„ ๋•Œ ์œ ์šฉํ•˜์ง€๋งŒ, ๋‹ค๋ฅธ ํŒ€์›์ด ๊ณต์œ ํ•˜๋Š” ๋ธŒ๋žœ์น˜์—์„œ๋Š” ์‚ฌ์šฉ์— ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • git revert: ๊ณต์œ  ๋ธŒ๋žœ์น˜์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์ปค๋ฐ‹์„ ์ทจ์†Œํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ ์ปค๋ฐ‹์„ ๋ฌดํšจํ™”ํ•˜๋Š” ์ƒˆ ์ปค๋ฐ‹์„ ์ƒ์„ฑํ•˜์—ฌ, ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ์ž‘์—…์„ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์–ด ํ˜‘์—…์— ๋” ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ „ํŽธ์€ Git์„ ์‹ค๋ฌด์—์„œ ๋”์šฑ ๋Šฅ์ˆ™ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์‹ค์ „ํŽธ์„ ํ†ตํ•ด ํ˜‘์—… ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์— ๋Œ€๋น„ํ•˜๊ณ , Git์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๊นŠ์ด ์ดํ•ดํ•˜์—ฌ ์‹ค์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 


 

3. GUI ํŽธ - GitHub Desktop์œผ๋กœ GitHub ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ธฐ

Git์„ ์ฒ˜์Œ ๋ฐฐ์šฐ๊ฑฐ๋‚˜, CLI(Command Line Interface)์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž์—๊ฒŒ GitHub Desktop์€ ๋งค์šฐ ์œ ์šฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด ์ฑ…์˜ 8์žฅ๊ณผ 9์žฅ์—์„œ๋Š” GitHub Desktop๊ณผ ๊ฐ™์€ GUI(๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค) ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•ด Git๊ณผ GitHub๋ฅผ ๋” ์ง๊ด€์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
GitHub Desktop์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ๋ช…๋ น์–ด ์ž…๋ ฅ ์—†์ด๋„ ํด๋ฆญ ๋ช‡ ๋ฒˆ์œผ๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•˜๊ณ , PR(Pull Request)์„ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ GUI ์ƒ์—์„œ ํ˜„์žฌ ๋ธŒ๋žœ์น˜ ์ƒํƒœ๋ฅผ ๋ฐ”๋กœ ํ™•์ธํ•˜๊ณ , ์ƒˆ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ๋„ ๊ฐ„๋‹จํžˆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
 

 
9.4 Git ๋ช…๋ น์–ด ์†์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ์—์„œ๋Š” Git ๋ช…๋ น์–ด๋ฅผ GUI ์ƒ์—์„œ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. GitHub Desktop์—์„œ๋Š” git pull, git merge, git push ๋“ฑ์˜ ๋ณต์žกํ•œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ํด๋ฆญ ๋ช‡ ๋ฒˆ์œผ๋กœ ๊ฐ„๋‹จํžˆ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด, CLI์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋„ Git์„ ๋Šฅ์ˆ™ํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 
 
 


 

๋งˆ๋ฌด๋ฆฌ

 ์ฑ…์˜ ๊ธฐ์ดˆํŽธ์—์„œ๋Š” Git์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์„ค๋ช…ํ•ด ๊ธฐ์ดˆ๋ฅผ ํƒ„ํƒ„ํžˆ ๋‹ค์งˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. Git์ด ์ฒ˜์Œ์ด๋”๋ผ๋„, ์‰ฝ๊ฒŒ ๋”ฐ๋ผํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์Šต๊ณผ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ ํ๋ฆ„์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ ์‹ค์ „ํŽธ์—์„œ๋Š” ์‹ค๋ฌด์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์— ๋Œ€ํ•œ ๋Œ€์ฒ˜๋ฒ•๊ณผ ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ, ์ปค๋ฐ‹ ๋˜๋Œ๋ฆฌ๊ธฐ ๋“ฑ ํŒ€ ํ˜‘์—…์— ์œ ์šฉํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ƒ์„ธํžˆ ๋‹ค๋ค„, Git์„ ๋ณด๋‹ค ๋Šฅ์ˆ™ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. Git์„ ์ฒ˜์Œ ๋ฐฐ์šฐ๊ฑฐ๋‚˜ ๋” ์ฒด๊ณ„์ ์œผ๋กœ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ๋ถ„๋“ค๊ป˜ ์ด ์ฑ…์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.
 
์ด ์ฑ…์ด ๊ถ๊ธˆํ•˜์‹œ๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ์—์„œ ๊ตฌ๋งคํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
https://product.kyobobook.co.kr/detail/S000214299095