Skip to main content

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ด€๋ฆฌ

GitHub์—์„œ ํ˜ธ์ŠคํŠธ๋˜๋Š” ์ปดํ“จํ„ฐ์™€ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด ์ž‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

Platform navigation

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ถ”๊ฐ€

์ƒˆ ์›๊ฒฉ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์ €์žฅ๋œ ํ„ฐ๋ฏธ๋„์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ git remote add ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

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

  • ์›๊ฒฉ ์ด๋ฆ„(์˜ˆ: origin)
  • ์›๊ฒฉ URL(์˜ˆ: https://github.com/OWNER/REPOSITORY.git)

์˜ˆ์‹œ:

$ git remote add origin https://github.com/OWNER/REPOSITORY.git
# Set a new remote

$ git remote -v
# Verify new remote
> origin  https://github.com/OWNER/REPOSITORY.git (fetch)
> origin  https://github.com/OWNER/REPOSITORY.git (push)

์‚ฌ์šฉํ•  URL์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฌธ์ œ ํ•ด๊ฒฐ: ์›๊ฒฉ ์›๋ณธ์ด ์ด๋ฏธ ์žˆ์Œ

์ด ์˜ค๋ฅ˜๋Š” ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ด๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์˜ ์›๊ฒฉ์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

$ git remote add origin https://github.com/octocat/Spoon-Knife.git
> fatal: remote origin already exists.

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ƒˆ ์›๊ฒฉ์— ๋‹ค๋ฅธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒˆ ์›๊ฒฉ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „์— ๊ธฐ์กด ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜์˜ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  • ์ƒˆ ์›๊ฒฉ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „์— ๊ธฐ์กด ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜์˜ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ œ๊ฑฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ URL ๋ณ€๊ฒฝ

git remote set-url ๋ช…๋ น์€ ๊ธฐ์กด ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ URL์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

ํŒ

HTTPS์™€ SSH URL ๊ฐ„์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

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

  • ๊ธฐ์กด ์›๊ฒฉ ์ด๋ฆ„. ์˜ˆ๋ฅผ ๋“ค์–ด ์ผ๋ฐ˜์ ์œผ๋กœ ์„ ํƒํ•˜๋Š” ๋‘ ๊ฐ€์ง€๋Š” origin ๋˜๋Š” upstream์ž…๋‹ˆ๋‹ค.

  • ์ƒˆ ์›๊ฒฉ URL. ์˜ˆ์‹œ:

    • HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒฝ์šฐ URL์€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    https://github.com/OWNER/REPOSITORY.git
    
    • SSH๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒฝ์šฐ URL์€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    git@github.com:OWNER/REPOSITORY.git
    

์›๊ฒฉ URL์„ SSH์—์„œ HTTPS๋กœ ์ „ํ™˜

  1. ํ„ฐ๋ฏธ๋„ํ„ฐ๋ฏธ๋„Git Bash๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

  2. ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋กœ์ปฌ ํ”„๋กœ์ ํŠธ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ์›๊ฒฉ์˜ ์ด๋ฆ„์„ ์–ป๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ์›๊ฒฉ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

    $ git remote -v
    > origin  git@github.com:OWNER/REPOSITORY.git (fetch)
    > origin  git@github.com:OWNER/REPOSITORY.git (push)
    
  4. git remote set-url ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ์˜ URL์„ SSH์—์„œ HTTPS๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    git remote set-url origin https://github.com/OWNER/REPOSITORY.git
    
  5. ์›๊ฒฉ URL์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    $ git remote -v
    # Verify new remote URL
    > origin  https://github.com/OWNER/REPOSITORY.git (fetch)
    > origin  https://github.com/OWNER/REPOSITORY.git (push)
    

๋‹ค์Œ์— ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— git fetch, git pull ๋˜๋Š” git pushํ•  ๋•Œ GitHub ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Git์—์„œ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด personal access token์„(๋ฅผ) ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” Git ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž์™€ ๊ฐ™์€ ์ž๊ฒฉ ์ฆ๋ช… ๋„์šฐ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค ์•ˆ์ „ํ•œ ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด Git์—์„œ ์•”ํ˜ธ ๊ธฐ๋ฐ˜ ์ธ์ฆ์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ์ธ์šฉ ์•ก์„ธ์Šค ํ† ํฐ ๊ด€๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

GitHub์™€ ํ†ต์‹ ํ•  ๋•Œ๋งˆ๋‹ค Git์—์„œ GitHub ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ personal access token์„(๋ฅผ) ๊ธฐ์–ตํ•˜๋„๋ก ์ž๊ฒฉ ์ฆ๋ช… ๋„์šฐ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›๊ฒฉ URL์„ HTTPS์—์„œ SSH๋กœ ์ „ํ™˜

  1. ํ„ฐ๋ฏธ๋„ํ„ฐ๋ฏธ๋„Git Bash๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

  2. ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋กœ์ปฌ ํ”„๋กœ์ ํŠธ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ์›๊ฒฉ์˜ ์ด๋ฆ„์„ ์–ป๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ์›๊ฒฉ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

    $ git remote -v
    > origin  https://github.com/OWNER/REPOSITORY.git (fetch)
    > origin  https://github.com/OWNER/REPOSITORY.git (push)
    
  4. git remote set-url ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ์˜ URL์„ HTTPS์—์„œ SSH๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    git remote set-url origin git@github.com:OWNER/REPOSITORY.git
    
  5. ์›๊ฒฉ URL์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    $ git remote -v
    # Verify new remote URL
    > origin  git@github.com:OWNER/REPOSITORY.git (fetch)
    > origin  git@github.com:OWNER/REPOSITORY.git (push)
    

๋ฌธ์ œ ํ•ด๊ฒฐ: โ€˜[name]โ€™ ์›๊ฒฉ์ด ์—†์Œ

์ด ์˜ค๋ฅ˜๋Š” ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ์›๊ฒฉ์ด ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

$ git remote set-url sofake https://github.com/octocat/Spoon-Knife
> fatal: No such remote 'sofake'

์›๊ฒฉ ์ด๋ฆ„์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž…๋ ฅํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ

git remote rename ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ์›๊ฒฉ์˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

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

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

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ ์˜ˆ์ œ

์˜ˆ์ œ์—์„œ๋Š” HTTPS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์ œ(๊ถŒ์žฅ)ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

$ git remote -v
# View existing remotes
> origin  https://github.com/OWNER/REPOSITORY.git (fetch)
> origin  https://github.com/OWNER/REPOSITORY.git (push)

$ git remote rename origin destination
# Change remote name from 'origin' to 'destination'

$ git remote -v
# Verify remote's new name
> destination  https://github.com/OWNER/REPOSITORY.git (fetch)
> destination  https://github.com/OWNER/REPOSITORY.git (push)

๋ฌธ์ œ ํ•ด๊ฒฐ: ๊ตฌ์„ฑ ์„น์…˜์˜ ์ด๋ฆ„์„ โ€˜remote.[old name]โ€™์—์„œ โ€˜remote.[new name]โ€™์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Œ

์ด ์˜ค๋ฅ˜๋Š” ์ž…๋ ฅํ•œ ์ด์ „ ์›๊ฒฉ ์ด๋ฆ„์ด ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

git remote -v ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ์žˆ๋Š” ์›๊ฒฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ git remote -v
# View existing remotes
> origin  https://github.com/OWNER/REPOSITORY.git (fetch)
> origin  https://github.com/OWNER/REPOSITORY.git (push)

๋ฌธ์ œ ํ•ด๊ฒฐ: [new name] ์›๊ฒฉ์ด ์ด๋ฏธ ์žˆ์Œ

์ด ์˜ค๋ฅ˜๋Š” ์‚ฌ์šฉํ•˜๋ ค๋Š” ์›๊ฒฉ ์ด๋ฆ„์ด ์ด๋ฏธ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ์›๊ฒฉ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์›๋ž˜ ์›๊ฒฉ์˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ œ๊ฑฐ

git remote rm ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์›๊ฒฉ URL์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

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

  • ์›๊ฒฉ ์ด๋ฆ„(์˜ˆ: destination)

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์›๊ฒฉ URL์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒฝ์šฐ ๋กœ์ปฌ ๋ฐ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์—ฐ๊ฒฐ๋งŒ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์‚ญ์ œ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ œ๊ฑฐ ์˜ˆ์ œ

์˜ˆ์ œ์—์„œ๋Š” HTTPS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์ œ(๊ถŒ์žฅ)ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

$ git remote -v
# View current remotes
> origin  https://github.com/OWNER/REPOSITORY.git (fetch)
> origin  https://github.com/OWNER/REPOSITORY.git (push)
> destination  https://github.com/FORKER/REPOSITORY.git (fetch)
> destination  https://github.com/FORKER/REPOSITORY.git (push)

$ git remote rm destination
# Remove remote
$ git remote -v
# Verify it's gone
> origin  https://github.com/OWNER/REPOSITORY.git (fetch)
> origin  https://github.com/OWNER/REPOSITORY.git (push)

์ฐธ๊ณ  ํ•ญ๋ชฉ

git remote rm์€ ์„œ๋ฒ„์—์„œ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์›๊ฒฉ ๋ฐ ํ•ด๋‹น ์ฐธ์กฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ: โ€˜remote.[name]โ€™ ๊ตฌ์„ฑ ์„น์…˜์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์Œ

์ด ์˜ค๋ฅ˜๋Š” ์‚ญ์ œํ•˜๋ ค๋Š” ์›๊ฒฉ์ด ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

$ git remote rm sofake
> error: Could not remove config section 'remote.sofake'

์›๊ฒฉ ์ด๋ฆ„์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž…๋ ฅํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

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