๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ ํŒ/ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ณธ

Git ์‚ฌ์šฉ๋ฒ•

by 1mj 2022. 3. 11.

GitHub์™€ Git 

Github๋Š” ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ํˆด์ธ Git์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์›ํ•˜๋Š” ์›น ์„œ๋น„์Šค์ด๋‹ค.

Git์€ ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ ํ”„๋กœ์ ํŠธ์˜ ๋ณ€๊ฒฝ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ๋กœ์ปฌ์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๊ณ  ์›๊ฒฉ ๋ฆฌ์†Œ์Šค์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ‘ธ์‹œํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ’ก Github์—์„œ Git์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

GitHub์™€ GitLab

๋Œ€ํ‘œ์ ์œผ๋กœ Git ์ €์žฅ์†Œ๋ฅผ ์„œ๋น„์Šคํ•˜๋Š” ๊ณณ์œผ๋กœ GitHub์™€ GitLab์ด ์žˆ๋‹ค.

Github๋Š” ๋ฌด๋ฃŒ ์„œ๋ฒ„ ์ €์žฅ์†Œ๋ฅผ ์ง€์›ํ•œ๋‹ค. ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์˜คํ”ˆ๋˜์–ด ์ˆ˜๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

GitLab์€ ๋ณด์•ˆ์„ ์ค‘์‹œํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ํ˜‘์—…ํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ํˆด๋กœ ์ด์šฉํ•˜๋ฉฐ ์ž์‹ ์˜ ์„œ๋ฒ„์— ์„ค์น˜ํ•ด ํ”„๋ผ์ด๋น—ํ•œ Git ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.(์„œ๋น„์Šคํ˜•๊ณผ ์„ค์น˜ํ˜•์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์Œ)

 

๐Ÿ’ก GitHub๋Š” ๋ณดํ†ต ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ, GitLab์€ ํ”„๋ผ์ด๋น— ํ”„๋กœ์ ํŠธ+๊ธฐ์ˆ ์ง€์›๋„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

Git๊ณผ SVN

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

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

Git ๊ตฌ์กฐ

SVN(Subversion)์€ ์„œ๋ฒ„์— ์†Œ์Šค ์ €์žฅ์†Œ๋ฅผ ๋‘๊ณ  ์ž‘์—…ํ•˜๋Š” PC๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์†Œ์Šค์˜ ์ˆ˜์ •๊ณผ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ด๋‹ค. ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ฆ‰์‹œ ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค.

SVN ๊ตฌ์กฐ

 

Git

  • ์—ฌ๋Ÿฌ ๋ช…์ด ๋™์‹œ์— ๋ณ‘๋ ฌ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์— ํ•ฉ์น˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ธํ„ฐ๋„ท์ด ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ๊ณณ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

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

  • Repository: ์ €์žฅ์†Œ, ํžˆ์Šคํ† ๋ฆฌ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
  • Working Tree: ์ž‘์—…์ž์˜ ํ˜„์žฌ ์‹œ์ ์˜ ์ €์žฅ์†Œ
  • Staging Area: ์ €์žฅ์†Œ์— ์ปค๋ฐ‹ํ•˜๊ธฐ ์ „ ์ค€๋น„ํ•˜๋Š” ์œ„์น˜
  • Head: ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋ธŒ๋žœ์น˜
  • Branch: ์ž‘์—… ์‹œ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—… ํ›„ ์—ฌ๋Ÿฌ ๋ธŒ๋žœ์น˜๋ฅผ ๋จธ์ง€
  • Merge: ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์˜ ๋‚ด์šฉ์„ ํ˜„์žฌ ๋ธŒ๋žœ์น˜์™€ ํ•ฉ์น˜๋Š” ์ž‘์—…
  • index: ์ปค๋ฐ‹์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „ ์ €์žฅ์†Œ์™€ ์ž‘์—… ํŠธ๋ฆฌ ์‚ฌ์ด์— ์กด์žฌํ•˜๋Š” ๊ณต๊ฐ„

 

๐Ÿ“Œ ๋ธŒ๋žœ์น˜(branch)

๋…๋ฆฝ์ ์œผ๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ๋ถ„๋ฆฌ๋œ ์ž‘์—… ์˜์—ญ์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ์ง„ํ–‰ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์™€ ๋ณ‘ํ•ฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ•˜๋‚˜์˜ ๋ธŒ๋žœ์น˜๋กœ ๋ชจ์„ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Œ ์ธ๋ฑ์Šค(index) = ์Šคํ…Œ์ด์ง•(staging)

๋ณ€๊ฒฝํ•œ ํŒŒ์ผ ์ค‘ ์ €์žฅ์†Œ์— ์˜ฌ๋ฆฌ๊ณ ์ž ํ•˜๋Š” ํŒŒ์ผ์„ ์„ ํƒํ•˜๋Š” ์ž‘์—…์ด๋‹ค.

 

Git ์‚ฌ์šฉ๋ฒ• ๋ฐ ๋ช…๋ น์–ด

๐Ÿ“Œ ์ €์žฅํ•˜๊ธฐ

๋กœ์ปฌ์—์„œ ์ง€์—ญ ์ €์žฅ์†Œ๋กœ ๋ฐฐํฌํ•  ๋•Œ๋Š” commit

์ง€์—ญ ์ €์žฅ์†Œ์—์„œ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ๋ฐฐํฌํ•  ๋•Œ๋Š” push

๐Ÿ“Œ ๊ฐ€์ ธ์˜ค๊ธฐ

์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์ง€์—ญ ์ €์žฅ์†Œ๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” fetch

์ง€์—ญ ์ €์žฅ์†Œ์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” pull

commit & push ์ „์—๋Š” fetch & pull๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ €์žฅํ•œ ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์•ผ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฐธ๊ณ ์ž๋ฃŒ ๋ฐ ์ถœ์ฒ˜ ๐Ÿ™‡‍โ™‚๏ธ

https://velog.io/@lzhxxn/Git-%EC%9D%B4%EB%9E%80

 

๋Œ“๊ธ€