hhnn_soph

[Git] GitHub Repository ์ƒ์„ฑ ๋ฐ git pull/git pushํ•˜๊ธฐ ๋ณธ๋ฌธ

Git

[Git] GitHub Repository ์ƒ์„ฑ ๋ฐ git pull/git pushํ•˜๊ธฐ

hhnn_soph 2021. 11. 25. 17:45

๐ŸŽˆ GitHub์ด๋ž€?

Git์„ ๋“ค์–ด๋ดค๋‹ค๋ฉด GitHub๋„ ์•Œ์•„์•ผ ํ•œ๋‹ค! ๋‘˜์€ ์—„์—ฐํžˆ ๋‹ค๋ฅธ ๊ฒƒ!

 

Git GitHub
์ฝ”๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ Git์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์˜ฌ๋ ค๋‘˜ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ
Local Repository
(๋‚ด ์ปดํ“จํ„ฐ์˜ .git ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ)
Remote Repository
(์›๊ฒฉ ์ €์žฅ์†Œ, Local Repository์˜ ๋ณต์ œ๋ณธ)

 

GitHub์„ ํ†ตํ•ด ๋‚ด ์ปดํ“จํ„ฐ์˜ ์ž‘์—…๋ฌผ์„ ์™ธ๋ถ€ ์ปดํ“จํ„ฐ์— ๋ฐฑ์—…๋ณธ์„ ๋งŒ๋“ค์–ด ๋†“์„ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์˜ฌ๋ ค๋‘” ๊ฒƒ์„ ๋‹ค์šด๋ฐ›์•„์„œ ์ˆ˜์ •ํ•˜๊ณ  ์˜ฌ๋ ค๋‘˜ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜‘์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๐ŸŽˆ GitHub์—์„œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑํ•˜๊ธฐ

1. GitHub ๊ฐ€์ž… ํ›„ ์•„๋ž˜ ๊ฒฝ๋กœ๋กœ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜์ž. 

 

๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑํ•˜๊ธฐ

2. ์œ„์˜ New๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด Create a new repository ํŽ˜์ด์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค.

 

- Repository name : ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•ด๋„ ๋˜๊ณ , ์›ํ•˜๋Š” ๋ฐ๋กœ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

- Description : ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ ์œผ๋ฉด ๋˜๋Š”๋ฐ, ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํ”„๋กœ์ ํŠธ ํŠน์„ฑ์„ ๊ฐ„๋‹จํžˆ ์—ˆ๋‹ค.

- ๊ทธ ์•„๋ž˜ ๋ถ€๋ถ„์€ ์ž์‹ ์ด ์›ํ•˜๋Š” ์˜ต์…˜์„ ์„ ํƒํ•ด ์ค€ ํ›„ Create repository๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ƒ์„ฑ๋œ๋‹ค!

 

๐ŸŽˆ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ GitHub์— ์—…๋กœ๋“œํ•˜๊ธฐ

Create repository๋ฅผ ํด๋ฆญํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค.

 

์ด๋ฏธ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—” 1๋ฒˆ์งธ๋ฅผ, ์žˆ๋Š” ๊ฒฝ์šฐ์—” 2๋ฒˆ์งธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค!

๋‚œ.. ๋‚ด ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ๋งŒ๋“ค์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— 1๋ฒˆ์งธ ๋ช…๋ น๋ฌธ๋“ค์„ ์‹คํ–‰ํ•˜์˜€๋‹ค.

(๋‹จ, READEME.md๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ์— echo ~, git add README.md ๋ช…๋ น์–ด๋Š” ์‹คํ–‰ํ•˜์ง€ ์•Š์•˜๋‹ค.)

 

โญ ์—ฌ๊ธฐ์„œ ๋ˆˆ์—ฌ๊ฒจ๋ณผ ๊ฒƒ์ด ์žˆ๋Š”๋ฐ.. ๋ฐ”๋กœ main์ด๋‹ค. git push -u origin master๊ฐ€ ์•„๋‹ˆ๋ผ origin main์ด๋ผ๋‹ˆ.

๋ณ€๊ฒฝ๋œ main์ด๋ž€ ๋ธŒ๋ Œ์น˜๋ช…๊ณผ ์ถ”๊ฐ€๋œ 'git branch -M main' ๋ช…๋ น์–ด๊ฐ€ ์–ด์ƒ‰ํ•ด์„œ ์ฐพ์•„๋ณด์•˜๋‹ค.

ํ™•์ธํ•ด๋ณด๋‹ˆ, 'Black Lives Matter' ์šด๋™์— ๋ฐœ๋งž์ถฐ ๋…ธ์˜ˆ์ œ๋ฅผ ์—ฐ์ƒ์‹œํ‚ค๋Š” master๋ž€ ๋””ํดํŠธ ๋ธŒ๋ Œ์น˜๋ช…์„ main์œผ๋กœ ๋ฐ”๊พผ ๊ฒƒ์ด์—ˆ๋‹ค! master๋กœ push ํ•˜๋ฉด ์ปค๋ฐ‹์ด ์ œ๋Œ€๋กœ ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์œ ์˜ํ•˜์ž!

 

๐ŸŽˆ Git Push & Git Pull ํ•˜๊ธฐ

์œ„์ฒ˜๋Ÿผ ๋กœ์ปฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊นƒํ—ˆ๋ธŒ์— ์—…๋กœ๋“œํ–ˆ๋‹ค๋ฉด push์™€ pull์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Push์™€ Pull๋Š” ๋กœ์ปฌ ํ˜น์€ ๋ฆฌ๋ชจํŠธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ƒ๊ธฐ๋ฉด ๊ทธ ๋‚ด์šฉ์„ ์„œ๋กœ์—๊ฒŒ ๋ณด๋‚ด์ค„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

 

No. ์ƒˆ๋กœ์šด ์ปค๋ฐ‹ ๋ณด๋‚ด๊ธฐ ๋ช…๋ น์–ด
1 Local Repository > Remote Repository git push
2 Remote Repository > Local Repository git pull

 

1. Git Push

Local Repository์—์„œ ๋ฐ”๋€ ๋‚ด์šฉ์„ Remote Repository์—๋„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด ์“ฐ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

$ git add .
$ git commit -m "write a commit message"
$ git push

Push ์ „์—๋Š” ๋ฐ˜๋“œ์‹œ git add . &  git commit -m "write a commit message" 2๊ฐ€์ง€๋ฅผ ์‹œํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์ด ์žˆ๋‹ค!

$ git push [์ €์žฅ์†Œ๋ช…] [๋ธŒ๋žœ์น˜๋ช…]

git push ๋ช…๋ น์–ด๋Š” ์›๋ž˜ ์œ„์™€ ๊ฐ™์ด ์›๊ฒฉ ์ €์žฅ์†Œ๋ช…๊ณผ ๋ธŒ๋žœ์น˜๋ช…์„ ์ธ์ž๋กœ ๋ฐ›๋Š”๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฏธ GitHub ์—ฐ๋™ ์‹œ -u ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด push ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋ฐ‹ ํ›„ "git push" ๋ช…๋ น์–ด๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. 

$ git push -u origin main
# -u ์˜ต์…˜: ํ•ด๋‹น ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด ์ตœ์ดˆ ํ•œ๋ฒˆ๋งŒ ์ €์žฅ์†Œ๋ช…๊ณผ ๋ธŒ๋žœ์น˜๋ช…์„ ์ž…๋ ฅํ•˜๋ฉด ๊ทธ ์ดํ›„๋Š” ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.

# remote ์ €์žฅ์†Œ๋ช… ์•Œ์•„๋‚ด๊ธฐ
$ git remote
origin

 

โญ ๋งŒ์•ฝ ์ปดํ“จํ„ฐ์—์„œ ์ฒ˜์Œ์œผ๋กœ git push๋ฅผ ํ•œ๋‹ค๋ฉด GitHub์˜ username๊ณผ password๋ฅผ ๋ฌผ์–ด๋ณผ ๊ฒƒ์ด๋‹ค. 
์ด๋•Œ ๋‚ด๊ฐ€ GitHub์— ์„ค์ •ํ•œ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ์—ฐ๋™ ์™„๋ฃŒ!!
$ git push -u origin main
  Username for 'https://github.com': (์‚ฌ์šฉ์ž์ด๋ฆ„)
  Password for 'https://(์‚ฌ์šฉ์ž์ด๋ฆ„)@githum.com': (๋น„๋ฐ€๋ฒˆํ˜ธ)

โญ ํ•ด๋‹น ๋ฆฌ๋ชจํŠธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋ช‡ ๋ฒˆ ์ปค๋ฐ‹ํ–ˆ๋Š”์ง€ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ๋กœ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

commit ๋‚ด์—ญ

 

2. Git Pull

Remote Repository์—์„œ ๋ฐ”๋€ ๋‚ด์šฉ์„ Local Repository์—๋„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด ์“ฐ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

ํ™€๋กœ Git์„ ์—ฐ์Šตํ•˜๋˜ ์ค‘ Pull์„ ์–ธ์ œ ์“ฐ๋Š”์ง€ ์ „ํ˜€ ๊ฐ์ด ์˜ค์ง€ ์•Š์•˜๋Š”๋ฐ.. ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ๋งŽ์ด ์“ฐ์ธ๋‹ค๊ณ  ํ•œ๋‹ค! 

(์—ญ์‹œ GitHub์€ ํ˜‘์—…์— ๋Šฅํ†ตํ•˜๋‹ค..)

 

  • GitHub ํŽ˜์ด์ง€์—์„œ ์ง์ ‘ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•œ ๊ฒฝ์šฐ (ex. README.md ํŒŒ์ผ ์ˆ˜์ •)
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๊ทธ ๋ฆฌ๋ชจํŠธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ž์‹ ์˜ ์ปดํ“จํ„ฐ๋กœ ๊ฐ€์ ธ๊ฐ€์„œ ์ˆ˜์ •ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ๋ฆฌ๋ชจํŠธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— git push ํ•œ ๊ฒฝ์šฐ
    ์ฆ‰, ํ˜‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ push-pull์„ ํ†ตํ•ด ์„œ๋กœ์˜ ์ฝ”๋“œ๋ฅผ ๋ฐ›์•„๋ณด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
$ git pull
$ cat README.md
# cat [ํŒŒ์ผ๋ช….ํ™•์žฅ์ž] ๋ช…๋ น์–ด: ํ•ด๋‹น ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ชจ๋‘ ์ถœ๋ ฅํ•œ๋‹ค.

pull์„ ๋ฐ›์€ ํ›„ cat ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ํŒŒ์ผ์ด ์ตœ์‹ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!