Skip to main content

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ณ€๊ฒฝ ๋‚ด์šฉ ๊ฐ€์ ธ์˜ค๊ธฐ

์ผ๋ฐ˜์ ์ธ Git ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ์˜ต์…˜

๋‹ค์Œ ๋ช…๋ น์€ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. clone๊ณผ fetch๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์›๊ฒฉ URL์—์„œ ๋กœ์ปฌ ์ปดํ“จํ„ฐ๋กœ ์›๊ฒฉ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ , merge๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ž‘์—…์„ ์ž์‹ ์˜ ์ž‘์—…๊ณผ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, pull์€ fetch์™€ merge์˜ ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ณต์ œ

๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ „์ฒด ๋ณต์‚ฌ๋ณธ์„ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด git clone์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

$ git clone https://github.com/USERNAME/REPOSITORY.git
# Clones a repository to your computer

๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•  ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ URL ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub์— ๋กœ๊ทธ์ธํ•˜๋Š” ๋™์•ˆ ์ฝ”๋“œ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ธฐ๋ณธ ํŽ˜์ด์ง€์—์„œ ์ด๋Ÿฌํ•œ URL์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ธฐ๋ณธ ํŽ˜์ด์ง€ ์Šคํฌ๋ฆฐ์ƒท์ž…๋‹ˆ๋‹ค. ๋…น์ƒ‰ โ€œ์ฝ”๋“œโ€ ๋‹จ์ถ”๋Š” ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ํ‘œ์‹œ๋˜๊ณ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ HTTPS URL์„ ํ‘œ์‹œํ•˜๋„๋ก ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.

git clone์„ ์‹คํ–‰ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • repo๋ผ๋Š” ์ƒˆ ํด๋”๊ฐ€ ๋งŒ๋“ค์–ด์ง
  • Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์ดˆ๊ธฐํ™”๋จ
  • ๋ณต์ œํ•œ URL์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์›๊ฒฉ ์ด๋ฆ„ origin์ด ๋งŒ๋“ค์–ด์ง
  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ ๋ฐ ์ปค๋ฐ‹์ด ๋‹ค์šด๋กœ๋“œ๋จ
  • ๊ธฐ๋ณธ ๋ถ„๊ธฐ๊ฐ€ ์ฒดํฌ ์•„์›ƒ๋จ

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ชจ๋“  ๋ถ„๊ธฐ foo์— ๋Œ€ํ•ด ํ•ด๋‹น ์›๊ฒฉ ์ถ”์  ๋ถ„๊ธฐ refs/remotes/origin/foo๊ฐ€ ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์›๊ฒฉ ์ถ”์  ๋ถ„๊ธฐ ์ด๋ฆ„์„ origin/foo๋กœ ์ถ•์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ณ€๊ฒฝ ๋‚ด์šฉ ํŽ˜์น˜

๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•œ ์ƒˆ ์ž‘์—…์„ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด git fetch๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํŽ˜์น˜ํ•˜๋ฉด ๋ณ€๊ฒฝ ๋‚ด์šฉ์ด ์ž์‹ ์˜ ๋ถ„๊ธฐ์— ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์€ ์ฑ„ ๋ชจ๋“  ์ƒˆ ์›๊ฒฉ ์ถ”์  ๋ถ„๊ธฐ ๋ฐ ํƒœ๊ทธ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์›๊ฒฉ URL์ด ์„ค์ •๋œ ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์ด๋ฏธ ์žˆ๋Š” ๊ฒฝ์šฐ ํ„ฐ๋ฏธ๋„์—์„œ git fetch *remotename*์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ƒˆ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ git fetch REMOTE-NAME
# Fetches updates made to a remote repository

์•„๋‹ˆ๋ฉด ํ•ญ์ƒ ์ƒˆ ์›๊ฒฉ์„ ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ ํŽ˜์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ด€๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋กœ์ปฌ ๋ถ„๊ธฐ์— ๋ณ‘ํ•ฉ

๋ณ‘ํ•ฉ์€ ๋กœ์ปฌ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ๊ณผ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์›๊ฒฉ ์ถ”์  ๋ถ„๊ธฐ(์ฆ‰, ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํŽ˜์น˜ํ•œ ๋ถ„๊ธฐ)๋ฅผ ๋กœ์ปฌ ๋ถ„๊ธฐ์™€ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

$ git merge REMOTE-NAME/BRANCH-NAME
# Merges updates made online with your local work

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ณ€๊ฒฝ ๋‚ด์šฉ ๋Œ์–ด์˜ค๊ธฐ

git pull์€ ๋™์ผํ•œ ๋ช…๋ น์—์„œ git fetch์™€ git merge๋ฅผ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•œ ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

$ git pull REMOTE-NAME BRANCH-NAME
# Grabs online updates and merges them with your local work

pull์€ ๊ฒ€์ƒ‰๋œ ๋ณ€๊ฒฝ ๋‚ด์šฉ์— ๋Œ€ํ•œ ๋ณ‘ํ•ฉ์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ, pull ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋กœ์ปฌ ์ž‘์—…์ด ์ปค๋ฐ‹๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๋ณ‘ํ•ฉ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ๋ณ‘ํ•ฉ์„ ์ข…๋ฃŒํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ฒฝ์šฐ, ๋ถ„๊ธฐ๋ฅผ ๋Œ์–ด์˜ค๊ธฐ ์ „์˜ ์œ„์น˜๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๋ฐ git merge --abort๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์ฐธ๊ณ  ์ž๋ฃŒ