# Git ์ด๋ž€?

ย 

ย 

Git ๊ธฐ์ดˆ ๊ณต๋ถ€ํ•˜๊ธฐ ๋ชฉ์ฐจ
(1) 2020/02/29 - [Git] - Visual Studio Code์— Github ์—ฐ๋™ํ•˜๊ธฐ
(2) 2020/04/16 - [Git] - Git ์ด๋ž€?
(3) 2020/04/17 - [Git] - Git ์„ค์น˜ ๋ฐ ์ปค๋ฉ˜๋“œ ์‚ฌ์šฉ๋ฒ•
(4) 2020/04/18 - [Git] - Git Branch ์‚ฌ์šฉํ•˜๊ธฐ
(5) 2020/04/19 - [Git] - Git remote ์›๊ฒฉ ์ €์žฅ์†Œ์™€ Github
(6) 2020/04/20 - [Git] - Git - Pull Request ํ™œ์šฉํ•˜๊ธฐ

ย 

1. ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด

ย 

์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด(OSS)

์˜คํ”ˆ ์†Œ์Šค๋Š” ๊ณต๊ฐœ๋œ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ , ์‚ฌ์šฉํ•˜๊ณ , ์ˆ˜์ •ํ•˜๊ณ , ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๋กœ๋Š” Linux, Android, Python, ๊ทธ๋ฆฌ๊ณ  ์ˆ˜์—…์—์„œ ๋‹ค๋ฃจ๋Š” Git ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์˜คํ”ˆ ์†Œ์Šค์—๋Š” ๋‹ค์–‘ํ•œ ๋ผ์ด์„ ์Šค๊ฐ€ ์žˆ๋Š”๋ฐ ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ์‚ฌ์šฉ ๊ถŒํ•œ์— ์กฐ๊ธˆ์”ฉ์˜ ์ฐจ์ด๋Š” ์žˆ์Šต๋‹ˆ๋‹ค.ย 

์‚ฌ๋žŒ๋“ค์€ ์™œ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ• ๊นŒ์š”?

๋งŽ์€ ์žฅ์ ์ด ์žˆ์ง€๋งŒ 3๊ฐ€์ง€ ์ •๋„๋กœ ๋ง์”€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์˜คํ”ˆ ์†Œ์Šค๋Š” ๋ฌด๋ฃŒ ์ด์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋น„์šฉ ์ ˆ๊ฐ์ด ๋ฉ๋‹ˆ๋‹ค.
  2. ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  3. ์˜คํ”ˆ ์†Œ์Šค๋Š” ๋ˆ„๊ตฌ๋‚˜ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ˆ„๊ตฌ๋‚˜ ์†Œ์Šค์—์„œ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด์ฃ .

์ด์™€ ๊ฐ™์€ ์žฅ์ ์„ ํ† ๋Œ€๋กœ ๋งŽ์€ ๊ธฐ์—…์—์„œ ๊ธฐ์—… ํ”„๋กœ์ ํŠธ์— ์˜คํ”ˆ ์†Œ์Šค ๋„์ž…์„ ์ถ”์ง„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์–‘ํ•œ ์œ ์ €๋“ค์ด ์ตœ์‹  ๊ธฐ์ˆ  ์ •๋ณด์™€ ๋ฌธ์ œ์ ์˜ ํ•ด๊ฒฐ์ฑ…์„ ๊ณต์œ ํ•˜์—ฌ ์šด์˜๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ํ’ˆ์งˆ์ด ์šฐ์ˆ˜ํ•˜๊ณ , ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๊ณต์œ ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋” ์™„์„ฑ๋„ ์žˆ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก , ๋ฌด๋ฃŒ๋ผ๋Š” ์žฅ์ ๋„ ๋นผ๋†“์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

2. Git์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์š”์ธ

ย 

์˜คํ”ˆ ์†Œ์Šค์˜ ์žฅ์ ๊ณผ ํ•จ๊ป˜ ํšจ์œจ์ ์ธ ํ˜‘์—…์˜ ๋ฐฉ๋ฒ•์œผ๋กœ Git์„ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•จ์— ์žˆ์–ด์„œ Git์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?ย 

์ฒซ ๋ฒˆ์งธ๋กœ, ํšจ์œจ์ ์ธ ํ˜‘์—…์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

๊ธฐ์—…์—์„œ๋Š” ์—ฌ๋Ÿฌ๋ช…์˜ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋™์‹œ์— ์ž‘์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ์ง€๋งŒ, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฒ„๊ทธ ์ˆ˜์ • ์ „ ํŒŒ์ผ์—์„œ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ์ž‘์—… ํ›„ ์—…๋กœ๋“œํ•˜์—ฌ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•œ ์ฝ”๋“œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.
  • ํ•œ ํŒŒ์ผ์„ ๋™์‹œ์— ์ˆ˜์ •ํ•˜๋Š” ๊ฒฝ์šฐ ์ตœ์ข…์ ์œผ๋กœ ๊ฒ€์ˆ˜ํ•˜๋Š” ์‚ฌ๋žŒ์ด ํ•„์š”ํ•˜๊ณ , ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์ž‘์—…ํ•œ ์‚ฌ๋žŒ์„ ์ผ์ผ์ด ์ฐพ์•„์•ผ ๋ฉ๋‹ˆ๋‹ค.

์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์ด ๋Š˜์–ด๋‚˜๋Š” ๋“ฑ ํ˜‘์—…์˜ ํšจ์œจ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

Git์„ ์‚ฌ์šฉํ•˜๋ฉด ํŒŒ์ผ์„ ํ•ฉ์น˜๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์‹œ(Conflict ๋“ฑ) ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ ค์ฃผ๊ณ , ์ฝ”๋“œ์˜ ์ˆ˜์ • ๋‚ด์šฉ์ด ๊ด€๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ์˜ ๋ณ€๋™ ๊ณผ์ •์„ ๋น„๊ตํ•˜์—ฌ ์œ„์˜ ๋ฌธ์ œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.

ย 

๋‘ ๋ฒˆ์งธ๋กœ, ์‰ฌ์šด ๋ฒ„์ „๊ด€๋ฆฌ ์ž…๋‹ˆ๋‹ค.

์ž‘์—… ์ค‘ ๋ณ€๊ฒฝํ•œ ์ฝ”๋“œ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋˜์–ด ์˜ˆ์ „ ๋ฒ„์ „์œผ๋กœ ๋Œ์•„๊ฐ€๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Git์€ ์Šค๋ƒ…์ƒท ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์†์‰ฝ๊ฒŒ ์˜ˆ์ „ ๋ฒ„์ „์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „ ๊ด€๋ฆฌ๋Š” ๋ฐฑ์—…์˜ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ๋ณต์žกํ•œ ํŒŒ์ผ๊ด€๋ฆฌ ๋Œ€์‹  Git์„ ํ™œ์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. Git์˜ย ํŠน์ง•

๊ฐ€์ง€ ์น˜๊ธฐ(Branch)์™€ ๋ณ‘ํ•ฉ(Merge)

์‚ฌ์šฉ์ž๋Š” ๋ฉ”์ธ ์ฝ”๋“œ์—์„œ ๊ฐ€์ง€๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋…๋ฆฝ์„ฑ์„ ์œ ์ง€ํ•œ ์ฑ„๋กœ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์–‘ํ•œ ์ฝ”๋“œ๋ฅผ ๊ฐœ๋ฐœ ๋˜๋Š” ํ…Œ์ŠคํŠธ ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ด์ค๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ๋งŒ๋“ค์–ด ๊ฐœ๋ฐœ ๋˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ  ์ดํ›„ ๋ณ‘ํ•ฉ์„ ํ†ตํ•ด ๋ฉ”์ธ ์ฝ”๋“œ์— ๋ฐ˜์˜์„ ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์ง€๋Š” ์ผ ๋‹จ์œ„์˜ ์ž‘์—…์ด ๋  ์ˆ˜๋„ ์žˆ๊ณ , ๊ธฐ๋Šฅ์ด ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๊ธฐ ๋‚˜๋ฆ„์ž…๋‹ˆ๋‹ค.ย 

๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๋‹ค

Git์€ ๋ชจ๋“  ์ž‘์—…์ด ๋Œ€๋ถ€๋ถ„ ๋กœ์ปฌ์—์„œ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

๋งค๋ฒˆ ๋„คํŠธ์›Œํฌ์— ์ ‘์†ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์ด ๋„คํŠธ์›Œํฌ ์†๋„์™€ ๊ด€๊ณ„์—†๊ณ , ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.ย 

๋ถ„์‚ฐ ์ž‘์—…

Git์€ ๋ถ„์‚ฐ ์ž‘์—…์— ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋“ค์€ ๋ณต์‚ฌ๋œ ํ”„๋กœ์ ํŠธ์—์„œ ๋™์‹œ์— ์ž‘์—…์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Git์˜ ํŠน์„ฑ๊ณผ ์šฐ์ˆ˜ํ•œ ๋ถ„๊ธฐ ์‹œ์Šคํ…œ ๋•๋ถ„์— ๊ฑฐ์˜ ๋ฌดํ•œ๋Œ€์˜ ์›Œํฌ ํ”Œ๋กœ๋ฅผ ์ƒ๋Œ€์ ์œผ๋กœ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋•Œ๋•Œ๋กœ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ๋Š๋‚„ ์ˆ˜๋„ ์žˆ์–ด, Git์—์„œ๋Š” ํ†ตํ•ฉ ๊ด€๋ฆฌ์ž๋ฅผ ๋‘์–ด ์—ญํ•  ๋ถ„๋‹ด์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์†Œ์Šค ์ฝ”๋“œ์˜ ํ†ตํ•ฉ์— ๋งŽ์€ ์‹ ๊ฒฝ์„ ์“ฐ์ง€ ์•Š์•„๋„ ๋˜๊ณ , ๋งก์€ ์—ญํ• ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋’ค์—์„œ ์†Œ๊ฐœํ•  Github์—์„œ ์ข…์ข… ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.ย 

๋ฐ์ดํ„ฐ ๋ณด์žฅ

Git์€ ํ”„๋กœ์ ํŠธ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํŒŒ์ผ์€ ์ฒดํฌ์„ฌ์ด๋ผ๋Š” ๊ฒ€์‚ฌ๋ฅผ ๊ฑฐ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ฒดํฌ์„ฌ์€ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, Commit ID๋ผ๊ณ  ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. Commit ID๊ฐ€ ๊ฐ™์€ ๊ฒƒ์€ ํŒŒ์ผ ๋˜๋Š” ๊ตฌ์„ฑ์ด ์™„๋ฒฝํžˆ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์œผ๋กœ, Commit ID๋Š” ๊ฐ™์€๋ฐ, ํŒŒ์ผ ๋˜๋Š” ๊ตฌ์„ฑ์ด ๋‹ค๋ฅผ ์ˆœ ์—†์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ๋ˆ„๊ฐ€ ์–ด๋Š ํŒŒ์ผ์„ ์ž‘์—…ํ–ˆ๋Š”์ง€ ๊ธฐ๋ก์ด ๋‚จ๊ธฐ ๋•Œ๋ฌธ์— Version history ๊ด€๋ฆฌ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ย 

์ค€๋น„ ์˜์—ญ (Staging area)

Git์€ ์ค€๋น„ ์˜์—ญ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ˆ˜์ •ํ•œ ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์ „ ๊ฒ€ํ† ํ•˜๋Š” ๋‹จ๊ณ„๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ฐ˜์˜ํ•  ํŒŒ์ผ์„ ์„ ํƒํ•˜๊ณ  ์ดํ›„ ์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ ์‹ค์ œ๋กœ ์ €์žฅ์†Œ์— ๋ฐ˜์˜ํ•˜๋Š” 2๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์•ผ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ˆ˜์ •ํ•œ ํŒŒ์ผ ์ค‘ ์ €์žฅ์†Œ์— ๋ฐ˜์˜ํ•  ํŒŒ์ผ๋งŒ ์„ ํƒํ•˜์—ฌ ์ ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.ย 

์˜คํ”ˆ ์†Œ์Šค

๋งˆ์ง€๋ง‰์œผ๋กœ Git์€ ์˜คํ”ˆ ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ์•ž์—์„œ ๋ง์”€๋“œ๋ฆฐ ์žฅ์ ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด์„œ ๊ณ„์† ๋ฐœ์ „ํ•ด ๋‚˜๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

4.SVN vs Git

SVN

SVN์€ย ์ค‘์•™์ง‘์ค‘์‹ย ๋ฒ„์ „ย ๊ด€๋ฆฌย ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๋Š” ์ค‘์•™์„œ๋ฒ„๊ฐ€ ๋ณ„๋„๋กœ ์žˆ๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ค‘์•™ ์„œ๋ฒ„์—์„œ ํŒŒ์ผ์„ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.

SVN์—์„œ๋Š” Git๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋กœ์ปฌ ์ €์žฅ์†Œ/์›๊ฒฉ ์ €์žฅ์†Œ๋ผ๋Š” ๊ฐœ๋…์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Commit์„ ํ•˜๋Š” ์ˆœ๊ฐ„ ์ค‘์•™ ์„œ๋ฒ„์— ์ฝ”๋“œ๊ฐ€ ๋ฐ”๋กœ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.

์ด๋Š” ๋‚ด๊ฐ€ ์ž‘์—…ํ•œ ์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ Commitํ•œ ์ฝ”๋“œ์— ์‹ค์ˆ˜๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ค‘์•™ ์„œ๋ฒ„์—์„œ ํŒŒ์ผ์„ ๋ฐ›์•„ ์ž‘์—…ํ•˜๋Š” ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋กœ์ปฌ ์ €์žฅ์†Œ๋ผ๋Š” ๊ฐœ๋…์ด ์—†์–ด ๋‚˜๋งŒ์˜ Version history๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋Š” ๋™์•ˆ ํ•ญ์ƒ ์ค‘์•™ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผํ•˜๊ณ , ๋งŒ์•ฝ ์ค‘์•™ ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜์—ˆ์„ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์™€ ํ˜‘์—…ํ•  ์ˆ˜ ์—†๊ณ  ์ตœ์•…์˜ ์ƒํ™ฉ์—์„œ๋Š” ์ง„ํ–‰์ค‘์ด์—ˆ๋˜ ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  Version history๋ฅผ ์žƒ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ย 

Git

Git์€ย ๋ถ„์‚ฐย ๋ฒ„์ „ย ๊ด€๋ฆฌย ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋ณต์ œํ•ด์„œ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์›๊ฒฉ ์ €์žฅ์†Œ๊ฐ€ ๋‹ค์šด๋ ์ง€๋ผ๋„ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ์ •๋ณด๋กœ ๋‹ค์‹œ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋Š” ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์ž์‹ ๋งŒ์˜ Version history๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ , ๋กœ์ปฌ ์ €์žฅ์†Œ์™€ ์›๊ฒฉ ์ €์žฅ์†Œ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ Commitํ•œ ์ •๋ณด๊ฐ€ ์ฆ‰์‹œ ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋ฐ˜์˜๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ์›ํ•˜๋Š” ์ˆœ๊ฐ„์— ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋ฐ˜์˜(Push)ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์›๊ฒฉ ์ €์žฅ์†Œ๋Š” ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์–ด์„œ, ๋™์‹œ์— ๋‹ค์–‘ํ•œ ๊ทธ๋ฃน๊ณผ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ย 

5. SVNย ๋Œ€๋น„ย Gitย ์ฐจ๋ณ„์ 

(1) ๋ถ„์‚ฐ์‹

SVN๊ณผ ๋น„๊ต๋˜๋Š” Git์˜ ๋Œ€ํ‘œ์ ์ธ ์ฐจ๋ณ„์ ์€ Git์ด ๋ถ„์‚ฐ์‹์ด๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด SVN์€ ์ค‘์•™์ง‘์ค‘์‹์ž…๋‹ˆ๋‹ค. SVN์—์„œ๋Š” ์ค‘์•™ ์„œ๋ฒ„๊ฐ€ ์žˆ๊ณ , ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ ์ค‘์•™ ์„œ๋ฒ„์—์„œ Checkoutํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์€ ์›๋ณธ์„ ๋ณต์ œํ•œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. Git์€ Checkout์„ ํ•˜๋Š” ์‹œ์ ์— ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋‚ด ์ €์žฅ์†Œ๋ฅผ ์ค‘์•™ ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ์ •๋„์ž…๋‹ˆ๋‹ค.ย 

(2) ๋‚ฎ์€ ํ†ต์‹  ์˜์กด๋„

SVN์„ ์‚ฌ์šฉํ•  ๋•Œ ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์—์„œ๋Š” ์ค‘์•™ ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์†๋„๊ฐ€ ๋Š๋ฆฌ๊ฑฐ๋‚˜ ๋ถˆ์•ˆ์ •ํ•œ ๊ฒฝ์šฐ ์ž‘์—…์†๋„์— ์˜ํ–ฅ์„ ๋ผ์น  ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค. Git์€ ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ์ ธ์˜ฌ ๋•Œ(Pull)์™€ ๋ฐ˜์˜ํ•  ๋•Œ(Push) ๋“ฑ ์ผ๋ถ€ ์ž‘์—…์—์„œ๋งŒ ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋กœ์ปฌ์—์„œ ์ž‘์—…ํ•  ๋•Œ์˜ ์ž์œ ๋„๊ฐ€ ํ›จ์”ฌ ๋†’์Šต๋‹ˆ๋‹ค.

(3) ํšจ์œจ์ ์€ ๋ฒ„์ „ ๊ด€๋ฆฌ

SVN์€ ํŒŒ์ผ์˜ ๋ณ€ํ™”(์ฐจ์ด์ )๋งŒ ๊ธฐ๋กํ•˜์ง€๋งŒ Git์€ ๊ทธ ์ˆœ๊ฐ„์„ ์Šค๋ƒ…์ƒท์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „์„ ๋˜๋Œ๋ฆด ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ, SVN์€ ์ค‘์•™ ์„œ๋ฒ„์—์„œ ๋ชจ๋“  ๋ณ€๊ฒฝ๋‚ด์—ญ์„ ๋‹ค์šด๋ฐ›์•„์•ผ ํ•˜์ง€๋งŒ Git์€ ์ €์žฅ๋œ ์Šค๋ƒ…์ƒท์œผ๋กœ ๋ฐ”๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ํ†ต์‹ ํ•  ํ•„์š”๋„ ์—†์ฃ .

ย 

6. Gitย ์„ธย ๊ฐ€์ง€ย ์˜์—ญ

Git์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์„ธ ๊ฐ€์ง€ ์˜์—ญ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.

  • ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ(Working Directory): ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํ˜„์žฌ ์ž‘์—…์„ ์ง„ํ–‰์ค‘์ธ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.
  • ์ค€๋น„ ์˜์—ญ(Staging Area): ๋ฐ˜์˜ํ•  ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์— ๋ฐ˜์˜๋˜๊ธฐ ์ „์— ๊ฑฐ์น˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค.
  • .git ๋””๋ ‰ํ† ๋ฆฌ(Repository): .git ๋””๋ ‰ํ† ๋ฆฌ(๋กœ์ปฌ ์ €์žฅ์†Œ)๋Š” Git ํ”„๋กœ์ ํŠธ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณณ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. Git์˜ ํ•ต์‹ฌ์ด๋ฉฐ ์„œ๋ฒ„์— ์žˆ๋Š” ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œ ํ•  ๋•Œ .git ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.

์ž‘์—… ํ๋ฆ„

Git์—์„œ๋Š” ์„ธ ๊ฐ€์ง€ ์˜์—ญ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ๋ฆ„์œผ๋กœ ์ž‘์—…์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

  • Modified: ํŒŒ์ผ์ด ์ˆ˜์ •๋˜์—ˆ์œผ๋‚˜, ์•„์ง ์ €์žฅ์†Œ์— ๋ฐ˜์˜ ๋˜์ง€ ์•Š์€ ์ƒํƒœ

์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์—์„œ comment.js ํŒŒ์ผ์„ ์ˆ˜์ •

  • Staged: ์ˆ˜์ •ํ•œ ํŒŒ์ผ ์ค‘ ๊ณง ๋ฐ˜์˜ ํ•  ๊ฒƒ์ธ ์ƒํƒœ

์ค€๋น„ ์˜์—ญ์— ์ˆ˜์ •ํ•œ ํŒŒ์ผ comment.js๋ฅผ ์ถ”๊ฐ€

  • Committed: ์ˆ˜์ •ํ•œ ํŒŒ์ผ์ด ์ €์žฅ์†Œ์— ๋ฐ˜์˜๋œ ์ƒํƒœ

์ค€๋น„ ์˜์—ญ์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ .git ๋””๋ ‰ํ† ๋ฆฌ(์ €์žฅ์†Œ)์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

Last Updated: 6/18/2023, 2:13:15 PM