[๐ŸŽ๊นƒํ—ˆ๋ธŒ] Git๊ณผ Github

dsfasdยท2022๋…„ 9์›” 14์ผ
0

๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ, Git๊ณผ Github ์•Œ์•„๋ณด๊ธฐ

๐ŸŽ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋ž€?

๊ฐ ๋ฒ„์ „ ๋ณ„๋กœ ๋ณ€๊ฒฝ๋œ ์ด๋ ฅ์„ ์ €์žฅํ•˜๋Š” ์ž‘์—…์ด๋‹ค.

ํ•˜๋‚˜ํ•˜๋‚˜ ์ถ”๊ฐ€๋˜๋Š” ๊ธฐ๋Šฅ์˜ ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ์ €์žฅํ•ด ๋‘˜ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

๋ณ€๊ฒฝ ์ด๋ ฅ์„ ์ €์žฅํ•ด ๋‘๋ฉด ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ์•„๊ฐ€์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์ด์ „์˜ ๋ณ€๊ฒฝ ์ด๋ ฅ๋“ค์ด
๊ธฐ๋ก๋˜์–ด ์žˆ์œผ๋‹ˆ ๋˜๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ด ์šฉ์ดํ•˜๋‹ค.


๐ŸŽ Git์ด๋ž€?

ํ•„์š”์„ฑ : ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ ๋ณด์กดํ•ด์•ผ ํ•  ํ•„์š”์„ฑ ๋•Œ๋ฌธ์— ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํ–ˆ๋‹ค.

Git ์€ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๋„๊ตฌ์ด๋‹ค.

Git์€ ์†Œ์Šค ์ฝ”๋“œ ๊ธฐ๋ก์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์ฝ”๋“œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐœ๋ฐœ๋œ ๋ถ„์‚ฐํ˜• ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ์ด๋‹ค.

๊ฐœ์ธ์€ Github๋ฅผ ํ†ตํ•ด ์ž‘์—… ํŒŒ์ผ์„ ์˜ฌ๋ ค๋‘๋ฉด ๋ฐฑ์—… ๊ธฐ๋Šฅ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Git์—์„œ๋Š” ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ํ•˜๋‚˜ํ•˜๋‚˜ ๋‚ ์งœ๋ณ„๋กœ ์–ด๋–ค ํŒŒ์ผ์ด ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ด๋ฅผ ์Šค๋ƒ…์ƒท์ด๋ผ๊ณ  ํ•˜๊ณ , ์Šค๋ƒ…์ƒท์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์ž‘์—…์„ commit์ด๋ผ๊ณ  ํ•œ๋‹ค.


๐ŸŽ Githhub๋ž€?

Github๋Š” Git Repository๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค์ด๋‹ค.

๊ฐœ๊ฐœ์ธ์ด ์†Œ์œ ํ•œ Git ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ Github๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค๊ณผ ๊ณต์œ ํ•˜๊ณ  ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

Github์—์„œ Code Review ๋“ฑ์„ ํ†ตํ•ด ํ˜‘์—…์ด ๊ฐ€๋Šฅํ•˜๊ณ , ์ˆ˜๋งŽ์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋“ค์ด GitHub๋กœ๋ถ€ํ„ฐ ํ˜ธ์ŠคํŒ…๋˜๊ณ  ์žˆ์–ด์„œ, ๋ˆ„๊ตฌ๋“  ์ž์œ ๋กญ๊ฒŒ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค.


์ „์ฒด์ ์ธ ๊นƒํ—ˆ๋ธŒ ๋™์ž‘ ๊ณผ์ •

Folk : ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์›๊ฒฉ ์ €์žฅ์†Œ(Remote Repository)๋ฅผ ๋‚ด ์›๊ฒฉ ์ €์žฅ์†Œ(Remote Repository)๋กœ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ์ž‘์—…

Clone : ์ฝ”๋“œ ์ˆ˜์ •์„ ์œ„ํ•ด์„œ ๋‚ด ์ปดํ“จํ„ฐ(Local Repository)๋กœ ๊ฐ€์ ธ์˜ค๋Š” ์ž‘์—…

Push : ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ commit์„ ํ†ตํ•ด ์ €์žฅํ•ด ์ค€ ๋’ค, ์›๊ฒฉ์ €์žฅ์†Œ(Remote Repository)์— ์˜ฌ๋ ค์ฃผ๋Š” ์ž‘์—…

Pull : ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ๋‚ด ์ปดํ“จํ„ฐ(Local Repository)๋กœ ๊ฐ€์ ธ์˜ค๋Š” ์ž‘์—…

  • Pull Request : ๋‚ด๊ฐ€ ์ œ์•ˆํ•œ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋ฐ˜์˜ ์—ฌ๋ถ€๋ฅผ ์š”์ฒญํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

๐Ÿ—‚ Git Repository

๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๋Š” ์†Œ์Šค ์ฝ”๋“œ ํด๋”๊ฐ€ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ๋ฐ›๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‚ด ํด๋”๋ฅผ Git์˜ ๊ด€๋ฆฌ ์•„๋ž˜์— ๋‘์–ด์•ผ ํ•˜๋Š”๋ฐ, Git์œผ๋กœ ๊ด€๋ฆฌ๋˜๋Š” ํด๋” ๋ฅผ Git repository ๋ผ๊ณ  ํ•œ๋‹ค.

Git repository ๋Š” Remote Repository(๊ณต์œ ) ์™€ Local Repository๊ฐœ์ธ์˜ ํ•˜๋“œ๋””์Šคํฌ) ๋กœ ๋‚˜๋‰œ๋‹ค.

  • ์ž‘์—…ํ•  ๋•Œ๋Š” Local Repository ์—์„œ ํ•  ์ˆ˜ ์žˆ๊ณ 
  • ๋‚ด๊ฐ€ ์ž‘์—…ํ•œ ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•˜๋ ค๋ฉด Remote Repository ์— ์—…๋กœ๋“œํ•ด ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ•จ๊ป˜ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด Remote Repository์— ์˜ฌ๋ ค๋†“์€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‚ด Local Repository ๋กœ ๊ฐ€์ง€๊ณ  ์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค.


๐Ÿ“‚ ๋กœ์ปฌ Git ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ

git init ( git ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ๋งŒ๋“ค๊ธฐ )

๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋”๋ฅผ Git ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.
๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋”์—์„œ git init ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

git add ( staging area์— ์ถ”๊ฐ€ )

์ด์ œ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋‚ด ํŒŒ์ผ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ git์œผ๋กœ ๊ด€๋ฆฌํ•ด๋ณด์ž.
staging area์— ์ฝ”๋“œ๋ฅผ ์˜ฎ๊ธฐ๋Š” ๋ช…๋ น์–ด๋Š” git add <์˜ฎ๊ธธ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ช…>์ด๋‹ค.
๋ชจ๋“  ํŒŒ์ผ์„ ํ•œ ๋ฒˆ์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด git add . ์„ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

git status ( staging area ์—์„œ ํŒŒ์ผ ์ƒํƒœ ํ™•์ธ )

staging area๋กœ ์ž˜ ์˜ฎ๊ฒจ์กŒ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” git status ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.
staging area๋กœ ์˜ฎ๊ฒจ์ง€์ง€ ์•Š์€ ํŒŒ์ผ์€ ๋นจ๊ฐ„์ƒ‰ ๊ธ€์”จ๋กœ ํ‘œ์‹œ๋˜๋ฉฐ,
staging area๋กœ ์ž˜ ์˜ฎ๊ฒจ์กŒ๋‹ค๋ฉด ํŒŒ์ผ์ด ์ดˆ๋ก์ƒ‰ ๊ธ€์”จ๋กœ ํ‘œ์‹œ๋œ๋‹ค.

git commit ( ์ €์žฅ์†Œ์— ๊ธฐ๋กํ•˜๊ธฐ )

staging area์— ์žˆ๋Š” ํŒŒ์ผ์€ commit์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
commit์€ ํŒŒ์ผ ๋ฐ ํด๋”์˜ ์ถ”๊ฐ€/๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅ์†Œ์— ๊ธฐ๋กํ•˜๋Š” ์ž‘์—…์ด๋‹ค.
git commit -m "commit Message, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์–ด๋‘๋Š” ๊ณณ"
์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋Š” ์ž‘์€ ๋‹จ์œ„๋กœ, ์งง๊ณ  ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ตฌ์ฒด์ ์œผ๋กœ ์ ์–ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.


๐Ÿ“‚ ์›๊ฒฉ Git ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ

1. Github ํ™ˆํŽ˜์ด์ง€์—์„œ ์ƒˆ๋กœ์šด repository ๋งŒ๋“ค๊ธฐ

๊นƒํ—ˆ๋ธŒ ํ™ˆํŽ˜์ด์ง€์— ์ ‘์† > ๋กœ๊ทธ์ธ ํ›„
์™ผ์ชฝ ์ƒ๋‹จ์— new ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ƒˆ๋กœ์šด repository๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

โœ… Owner = ์ž์‹ ์˜ ์•„์ด๋”” ์ธ์ง€ ํ™•์ธ
โœ… Repository name = ์›ํ•˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„ ์ž…๋ ฅ
โœ… Public / Private ์—ฌ๋ถ€๋ฅผ ์ฒดํฌ


์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œจ๋ฉด ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋งˆ์นœ๊ฒƒ์ด๋‹ค

๊ฐ€๋ฆฐ๊ฒƒ์€ ์ˆœ์„œ๋Œ€๋กœ ์•„์ด๋”” , ๋‚ด๊ฐ€ ์ง€์€ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„์ด๋‹ค.

2. ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ ์—ฐ๊ฒฐํ•˜๊ธฐ

git remote add [name] [์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ]
ex. git remote add origin git@github.com:{๊นƒํ—™ ์•„์ด๋””}/{ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„}.git

โœ… ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ฃผ์†Œ๋Š” ๋นจ๊ฐ„ ๋ฐ•์Šค ๋ถ€๋ถ„์— ํ•ด๋‹นํ•œ๋‹ค.
โœ… name์€ ๋“ฑ๋กํ•  ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์ด๋ฆ„์ด๋‹ค. ( ์ผ๋ฐ˜์ ์œผ๋กœ origin์„ ์‚ฌ์šฉํ•œ๋‹ค.)

โœ… git remote -v ๋ช…๋ น์–ด๋กœ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์ž˜ ์—ฐ๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜์˜ค๋ฉด ์ž˜ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์ด๋‹ค.

3. ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์˜ฎ๊ธฐ๊ธฐ

git push [remote] [branch]
์˜ˆ์‹œ ) git push -u origin main

โœ… remote์—๋Š” ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ๋‹ค. (์ผ๋ฐ˜์ ์œผ๋กœ origin)
โœ… branch๋Š” ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ๋‹ค. (์ผ๋ฐ˜์ ์œผ๋กœ main)

4. ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ณ€๋™ ์‚ฌํ•ญ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ

git push -u origin main

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ–ˆ๋‹ค๋ฉด git push๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— main ๋ธŒ๋žœ์น˜ ๋‚ด์šฉ์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

profile
๊ธฐ๋ก์„ ์ •๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„!

0๊ฐœ์˜ ๋Œ“๊ธ€