CS/๊ฐœ๋ฐœ์ƒ์‹

[๊ฐœ๋ฐœ์ƒ์‹] #3. Git๊ณผ Github์˜ ์ฐจ์ด

์ฝ”๋”999 2023. 1. 10. 23:36

1. Git

  • Version Control System(VCS)๋กœ ๋กœ์ปฌ์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ๋ฒ„์ „๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ
  • ์†Œ์Šค์ฝ”๋“œ ์ˆ˜์ •์— ๋‹ค๋ฅธ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ

* VCS : ํŒŒ์ผ ๋ณ€ํ™”๋ฅผ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๊ธฐ๋กํ–ˆ๋‹ค๊ฐ€ ํŠน์ • ์‹œ์ ์˜ ๋ฒ„์ „์„ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ

  • ์ฝ”๋“œ์™€ ์ˆ˜์ •๋‚ด์—ญ์„ ๊ธฐ๋ก/๊ด€๋ฆฌํ•˜๋„๋ก ๋•๋Š” ๋ฒ„์ „๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ
  • ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑ/๋ณต๊ตฌ/์‚ญ์ œ/๋ณ‘ํ•ฉ ๊ฐ€๋Šฅ
  • ํ˜ผ์ž ์ž‘์—…ํ•˜๊ฑฐ๋‚˜ ํ์‡„์ ์ธ ๋ฒ”์œ„์˜ ํ˜‘์—…
  • ๊ฐœ๋ฐœ์ž์™€ ์‹ค์‹œ๊ฐ„ ์ž‘์—…๊ณต์œ  ๋ถˆ๊ฐ€๋Šฅ(๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ)

 

2. Github

  • ํด๋ผ์šฐ๋“œ ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌ๋˜๋Š” ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์Šคํ…œ
  • Git Repository๋ฅผ ์œ„ํ•œ ์›น๊ธฐ๋ฐ˜ ํ˜ธ์ŠคํŒ…์„œ๋น„์Šค
  • ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„(์ž์ฒด๊ตฌ์ถ•x)๋ฅผ ์‚ฌ์šฉํ•ด ๋กœ์ปฌ์—์„œ ๋ฒ„์ „๊ด€๋ฆฌํ•œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์—…๋กœ๋“œํ•˜์—ฌ ๊ณต์œ ๊ฐ€๋Šฅ
  • ์ €์žฅ์†Œ๋ฅผ ๊นƒํ—ˆ๋ธŒ์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„๋ฅผ ์ด์šฉ
  • ํ˜‘์—…์‹œ ์˜คํ”ˆ์†Œ์Šค ๊ณต์œ ๊ฐ€๋Šฅ

 

3. Git ๊ด€๋ จ ์šฉ์–ด

  • ๋กœ์ปฌ ์ €์žฅ์†Œ(local repository) : ๋‚ด PC์—์„œ ๊ด€๋ฆฌํ•˜๋Š” git์ €์žฅ์†Œ
  • ์›๊ฒฉ ์ €์žฅ์†Œ(remote repository) : ๋กœ์ปฌ์ €์žฅ์†Œ๋ฅผ ์—…๋กœ๋“œ ํ•˜๋Š” ๊ณณ (ex. GitHub, Bitbucket,GitLab ๋“ฑ)
  • Staging Area(Index) : ์ž‘์—… ํด๋”์—์„œ ์ž‘์—…ํ•œ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•˜๋Š” ๊ณณ(git์ €์žฅ์†Œ์— commitํ•˜๊ธฐ ์ „ ์˜ฌ๋ ค๋‘๋Š” ๊ณต๊ฐ„) 
  • ์ปค๋ฐ‹(commit) : Git(๋กœ์ปฌ ์ €์žฅ์†Œ)์— ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ €์žฅํ•˜๋Š” ์ž‘์—…
  • ํ‘ธ์‰ฌ(push) : Github(๋˜๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ)์— ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ €์žฅํ•˜๋Š” ์ž‘์—…
  • ํ’€(pull) : Github(๋˜๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ)์— ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ์ž‘์—…
  • ๋จธ์ง€(merge) : ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ

 

3-1. commit type

  • feat : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • fix : ๋ฒ„๊ทธ ์ˆ˜์ •
  • docs : ๋ฌธ์„œ ์ˆ˜์ •
  • style : ์ฝ”๋“œ ํฌ๋งทํŒ…, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ, ์ฝ”๋“œ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ
  • refector : ์ฝ”๋“œ ๋ฆฌํŽ™ํ† ๋ง
  • test : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ฆฌํŽ™ํ† ๋ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
  • chore : ๋นŒ๋“œ์—…๋ฌด ์ˆ˜์ •, ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ •

 

4. Git์˜ 3๊ฐ€์ง€ ์˜์—ญ

  • Working Directory : ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋””๋ ‰ํ† ๋ฆฌ
  • Staging Area : ์ปค๋ฐ‹ํ•˜๊ธฐ ์œ„ํ•ด $git add ๋ช…๋ น์–ด๋กœ ์ถ”๊ฐ€ํ•œ ํŒŒ์ผ๋“ค์ด ๋ชจ์—ฌ์žˆ๋Š” ๊ณต๊ฐ„ 
  • Repository : ์ปค๋ฐ‹๋“ค์ด ๋ชจ์—ฌ์žˆ๋Š” ์ €์žฅ์†Œ

 

5. Staging Area

์–ด๋–ค ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ €์žฅ์†Œ์— ์ปค๋ฐ‹๋˜๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ๊ฑฐ์ณ์•ผํ•˜๋Š” ์ค‘๊ฐ„๋‹จ๊ณ„์ด๋‹ค.

Staging Area์— ์ถ”๊ฐ€ํ•œ ํŒŒ์ผ๋“ค์„ commit ํ•˜๋ฉด ์ตœ์ข…์ ์œผ๋กœ ์ €์žฅ์†Œ(Repository)์— ์ €์žฅ๋œ๋‹ค.

 

 

6. ์ •๋ฆฌ

Git์€ ๋ฒ„์ „๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์ด๊ณ 

Github๋Š” ๋ฒ„์ „๊ด€๋ฆฌ, ์†Œ์Šค์ฝ”๋“œ ๊ณต์œ , ๋ถ„์‚ฐ๋ฒ„์ „์ œ์–ด ๋“ฑ์ด ๊ฐ€๋Šฅํ•œ ์›๊ฒฉ ์ €์žฅ์†Œ๋‹ค.