๊ด€๋ฆฌ ๋ฉ”๋‰ด

Daehyunii's Dev-blog

08. Github ๋ณธ๋ฌธ

๐Ÿ“š Language & CS knowledge/Git & GitHub

08. Github

Daehyunii 2022. 10. 8. 16:14

01. Github๋ž€?

 

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

 

  ๋˜ github๋Š” ์‹œ๊ฐ„์ฐจ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋“ค์„ ์ „๋ถ€ ํ•ด๊ฒฐํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ๋™์ผํ•œ ๋‚ด์šฉ์„ ๋‚˜๋Š” ๋กœ์ปฌ์—์„œ ์ž‘์—…ํ•˜๊ณ  ๋กœ์ปฌ์—์„œ๋งŒ commit์„ ํ•œ ์ƒํƒœ์ธ๋ฐ, ๋‹ค๋ฅธ ํŒ€์›์ด ๋‚ด๊ฐ€ github์— pushํ•˜๊ธฐ ์ „์— ๋จผ์ € github์— ์—…๋ฐ์ดํŠธ๋ฅผ ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ชจ๋ฅด๊ณ  ๋‚ด๊ฐ€ ์—…๋ฐ์ดํŠธํ•œ commit์„ github์— ๊ทธ๋Œ€๋กœ pushํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๋ญ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋ผ๋Š”๊ฒŒ ๋ช…ํ™•ํ•˜๋‹ค.

 

  ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•ด ์ค„ ์ˆ˜ ์žˆ๋Š”๊ฒƒ์ด ๋ฐ”๋กœ github์ด๋‹ค. github๋Š” ํ˜„์žฌ ๋ˆ„๊ตฐ๊ฐ€ github์— ์˜ฌ๋ผ์™€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๋กœ์ปฌ ์ƒํƒœ์—์„œ github์— ์ƒˆ๋กœ์šด ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ ค ํ•œ๋‹ค๋ฉด Error๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. ์ฆ‰, ํ”„๋กœ์ ํŠธ์˜ ์ตœ์‹  ๋ฒ„์ „์ด ์•„๋‹Œ ์ƒํƒœ์—์„œ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•œ ๊ฒƒ์„ github์— pushํ•˜๋ ค ํ•œ๋‹ค๋ฉด Error๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ์‚ฌ๊ณ ๋ฅผ ๋ฏธ์—ฐ์— ๋ฐฉ์ง€์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. 

 

02. github์— ํ”„๋กœ์ ํŠธ ์˜ฌ๋ฆฌ๊ธฐ

 

1. ์šฐ์„  ๋‹น์—ฐํžˆ github ๊ณ„์ •์„ ์ƒ์„ฑํ•œ๋‹ค.

2. ํ”„๋กœ์ ํŠธ ๋ช…์„ ์ž…๋ ฅํ•˜๊ณ  repository๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.(repository๋Š” ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ์ƒ์„ฑํ•œ๋‹ค)

github repository ์ƒ์„ฑ

3. repository๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด์ œ git์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•˜๋ฉด ๋œ๋‹ค.

4. ์•„๋ž˜ ์‚ฌ์ง„์— ์žˆ๋Š” ๋ช…๋ น์–ด๋“ค์„ ๋ณต์‚ฌํ•˜์—ฌ terminal์ด๋‚˜ vscode๋ฅผ ํ†ตํ•ด์„œ ๋ถ™์—ฌ๋„ฃ์–ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ, ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋‹น repository์— ์—…๋กœ๋“œํ•œ๋‹ค. (repository์ƒ์„ฑ์‹œ ํ•˜๋‹จ์— ์œ„์น˜)

github์— ํ”„๋กœ์ ํŠธ ์˜ฌ๋ฆฌ๊ธฐ

5. ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜ฌ๋ผ๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

github์— ์˜ฌ๋ผ๊ฐ„ ํ”„๋กœ์ ํŠธ

 

03. ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌํ•˜๊ธฐ

 

  ์ด์ œ๋Š” ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋“ค์„ ํŒ€์›๋“ค๊ณผ ๊ฐ™์ด ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ˆ˜์ •ํ•ด๋‚˜๊ฐˆ ๊ฒƒ์ด๋‹ค. ์šฐ์„  ํŒ€์›๋“ค ์ค‘ ๋ˆ„๊ตฐ๊ฐ€ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธ ์‹œ์ผœ์„œ github์— ์˜ฌ๋ ค์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

<๋ช…๋ น์–ด>git push - github์— ์—…๋ฐ์ดํŠธ ๋‚ด์—ญ ๋ฐ€์–ด๋„ฃ๊ธฐ

 

๋ฐ˜๋Œ€๋กœ ๋ˆ„๊ตฐ๊ฐ€ ์—…๋ฐ์ดํŠธ ํ•ด ๋†“์€ ๋‚ด์—ญ์„ ๋‚ด๊ฐ€ ๊ฐ€์ ธ์™€์„œ ๋กœ์ปฌ์˜ ํ”„๋กœ์ ํŠธ ๋‚ด์šฉ๋“ค์„ ์—…๋ฐ์ดํŠธ ํ•ด์•ผํ•  ๊ฒƒ์ด๋‹ค. ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

<๋ช…๋ น์–ด>git pull - github์—์„œ ์—…๋ฐ์ดํŠธ๋œ ๋‚ด์šฉ ๊ฐ€์ ธ์˜ค๊ธฐ

 

  ์•ž์„œ ๋งํ•œ๊ฒƒ๊ณผ ๊ฐ™์ด ์—ฌ๊ธฐ์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋Š” ๋กœ์ปฌ์—์„œ๋Š” ๋‚ด๊ฐ€ ๋จผ์ € commit์„ ํ–ˆ์ง€๋งŒ, github์— ์ด๋ฏธ ์—…๋ฐ์ดํŠธ๋œ ์ƒํ™ฉ์—์„œ๋Š” push๋ฅผ ํ•˜๋ฉด Error๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์ฃผ๊ณ  push๋ฅผ ํ•ด์•ผ ํ•˜๋Š”๋ฐ ๋‚˜๋„ commitํ•œ ๊ฒƒ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋˜ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋‚ด์šฉ๋“ค๋„ ๋‚ ์•„๊ฐ€์ง€ ์•Š๋„๋ก ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ์—…๋ฐ์ดํŠธ ๋œ ๋‚ด์—ญ๋“ค์ด ํ˜„์žฌ ๋‚˜์˜ ๋กœ์ปฌ ์ƒํƒœ์— ๊ทธ๋Œ€๋กœ commit์ด ๋˜์–ด์•ผ ํ•œ๋‹ค. ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

<๋ช…๋ น์–ด>git pull --no-rebase - ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๋‚˜์˜ ํ˜„์žฌ ๋กœ์ปฌ ์ƒํƒœ ๊ทธ๋Œ€๋กœ merge ๋ฐฉ์‹์œผ๋กœ ํ•ฉ๋ณ‘

<๋ช…๋ น์–ด>git pull --rebase - ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๋‚˜์˜ ํ˜„์žฌ ๋กœ์ปฌ ์ƒํƒœ ๊ทธ๋Œ€๋กœ rebase ๋ฐฉ์‹์œผ๋กœ ํ•ฉ๋ณ‘

 

์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์—…๋ฐ์ดํŠธ ๋ฐ ํ•ฉ๋ณ‘์„ ํ•ด์ฃผ๊ณ , ๊ทธ ๋‹ค์Œ push๋ฅผ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.