Skip to main content

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ปค๋ฐ‹ ํ‘ธ์‹œ

git push๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ๋ถ„๊ธฐ์—์„œ ๋งŒ๋“  ์ปค๋ฐ‹์„ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค.

git push ์ •๋ณด

git push ๋ช…๋ น์€ ๋‹ค์Œ ๋‘ ๊ฐœ์˜ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์›๊ฒฉ ์ด๋ฆ„(์˜ˆ: origin)
  • ๋ถ„๊ธฐ ์ด๋ฆ„(์˜ˆ: main)

์˜ˆ์‹œ:

git push REMOTE-NAME BRANCH-NAME

์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ์ปฌ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์˜จ๋ผ์ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ํ‘ธ์‹œํ•˜๋ ค๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ git push origin main์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๊ธฐ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ

๋ถ„๊ธฐ์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋ ค๋ฉด ๋™์ผํ•œ git push ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ƒˆ ๋ถ„๊ธฐ์˜ ์ด๋ฆ„์ด๋ผ๋Š” ์ธ์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ:

git push REMOTE-NAME LOCAL-BRANCH-NAME:REMOTE-BRANCH-NAME

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด LOCAL-BRANCH-NAME์ด REMOTE-NAME์œผ๋กœ ํ‘ธ์‹œ๋˜์ง€๋งŒ ์ด๋ฆ„์ด REMOTE-BRANCH-NAME์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

โ€œnon-fast-forwardโ€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋กœ์ปฌ ๋ณต์‚ฌ๋ณธ์ด ์‚ฌ์šฉ์ž๊ฐ€ ํ‘ธ์‹œํ•˜๋ ค๋Š” ์—…์ŠคํŠธ๋ฆผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๋™๊ธฐํ™”๋˜์ง€ ์•Š๊ฑฐ๋‚˜ โ€œ๋’ค์—โ€ ์žˆ๋Š” ๊ฒฝ์šฐ non-fast-forward updates were rejected๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋กœ์ปฌ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ํ‘ธ์‹œํ•˜๊ธฐ ์ „์— ์—…์ŠคํŠธ๋ฆผ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ โ€œํŽ˜์น˜โ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ non-fast-forward ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐจ๋‹จ๋œ ์ปค๋ฐ‹ ํ•ด๊ฒฐ

ํ‘ธ์‹œํ•˜๋ ค๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด GitHub์˜ ํ‘ธ์‹œ ๋ณดํ˜ธ๋Š” GitHub.com์—์„œ ์‹ค์ˆ˜๋กœ ๋น„๋ฐ€์„ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ปค๋ฐ‹ํ•˜์ง€ ์•Š๋„๋ก ์ž๋™์œผ๋กœ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋…ธ์ถœ๋œ ๋น„๋ฐ€์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๊ณต๊ธ‰๋ง์— ์‹ฌ๊ฐํ•œ ๋ณด์•ˆ ์œ„ํ—˜์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub์—์„œ ํ‘ธ์‹œํ•˜๋ ค๋Š” ์ปค๋ฐ‹์— ์ง€์›๋˜๋Š” ๋น„๋ฐ€์ด ํฌํ•จ๋˜์–ด ์žˆ์Œ์„ ๊ฐ์ง€ํ•˜๋ฉด ํ‘ธ์‹œ๊ฐ€ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ๋ธ”๋ก์„ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ปค๋ฐ‹์—์„œ ๋น„๋ฐ€์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฐจ๋‹จ๋œ ํ‘ธ์‹œ ํ•ด๊ฒฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”.
  • ์ œ๊ณต๋œ URL์— ๋”ฐ๋ผ ํ‘ธ์‹œ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ์˜ต์…˜์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ‘ธ์‹œ ๋ณดํ˜ธ ๋ฌด์‹œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ‘ธ์‹œ ๋ณดํ˜ธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ํ‘ธ์‹œ ๋ณดํ˜ธ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

ํƒœ๊ทธ ํ‘ธ์‹œ

git push๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ถ”๊ฐ€ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์—†์ด, ์›๊ฒฉ ๋ถ„๊ธฐ์™€ ์ด๋ฆ„์ด ๊ฐ™์€ ๋ชจ๋“  ์ผ์น˜ํ•˜๋Š” ๋ถ„๊ธฐ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๋‹จ์ผ ํƒœ๊ทธ๋ฅผ ํ‘ธ์‹œํ•˜๋ ค๋ฉด ๋ถ„๊ธฐ ํ‘ธ์‹œ์™€ ๋™์ผํ•œ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

git push REMOTE-NAME TAG-NAME

๋ชจ๋“  ํƒœ๊ทธ๋ฅผ ํ‘ธ์‹œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

git push REMOTE-NAME --tags

์›๊ฒฉ ๋ถ„๊ธฐ ๋˜๋Š” ํƒœ๊ทธ ์‚ญ์ œ

๋ถ„๊ธฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ตฌ๋ฌธ์€ ์–ธ๋œป ๋ณด๊ธฐ์— ์•ฝ๊ฐ„ ๋ชจํ˜ธํ•ฉ๋‹ˆ๋‹ค.

git push REMOTE-NAME :BRANCH-NAME

์ฝœ๋ก  ์•ž์— ๊ณต๋ฐฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์€ ๋ถ„๊ธฐ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹จ๊ณ„์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์„œ๋Š” REMOTE-NAME์˜ BRANCH-NAME์— ์•„๋ฌด๊ฒƒ๋„ ํ‘ธ์‹œํ•˜์ง€ ์•Š๋„๋ก Git์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— git push๋Š” ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ถ„๊ธฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ ๋ฐ ํฌํฌ

GitHub์—์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ โ€œํฌํฌโ€ํ•  ์ˆ˜ ์žˆ์Œ์„ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†Œ์œ ํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•  ๋•Œ Git์— ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ํ‘ธ์‹œํ•  ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์›๊ฒฉ URL์„ ์ œ๊ณตํ•˜์„ธ์š”. ์›๋ž˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ํ˜‘์—…ํ•˜๋ ค๋ฉด ์ „์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ upstream์ด๋ผ๊ณ  ํ•˜๋Š” ์ƒˆ ์›๊ฒฉ URL์„ ๋กœ์ปฌ Git ํด๋ก ์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

git remote add upstream THEIR_REMOTE_URL

์ด์ œ ํ•ด๋‹น ํฌํฌ์—์„œ ์—…๋ฐ์ดํŠธ ๋ฐ ๋ถ„๊ธฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

git fetch upstream
# Grab the upstream remote's branches
> remote: Counting objects: 75, done.
> remote: Compressing objects: 100% (53/53), done.
> remote: Total 62 (delta 27), reused 44 (delta 9)
> Unpacking objects: 100% (62/62), done.
> From https://github.com/OCTOCAT/REPO
>  * [new branch]      main     -> upstream/main

๋กœ์ปฌ ๋ณ€๊ฒฝ์ด ์™„๋ฃŒ๋˜๋ฉด ๋กœ์ปฌ ๋ถ„๊ธฐ๋ฅผ ํ‘ธ์‹œํ•˜์—ฌ GitHub ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํฌํฌ ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํฌํฌ ๋™๊ธฐํ™”์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

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