์๊ฒฉ ๋ฆฌํฌ์งํ ๋ฆฌ ์ถ๊ฐ
์ ์๊ฒฉ์ ์ถ๊ฐํ๋ ค๋ฉด ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ์ ์ฅ๋ ํฐ๋ฏธ๋์ ๋๋ ํฐ๋ฆฌ์์ 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๋ก ์ ํ
-
ํฐ๋ฏธ๋ํฐ๋ฏธ๋Git Bash๋ฅผ ์ฝ๋๋ค.
-
ํ์ฌ ์์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ก์ปฌ ํ๋ก์ ํธ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
-
๋ณ๊ฒฝํ๋ ค๋ ์๊ฒฉ์ ์ด๋ฆ์ ์ป๊ธฐ ์ํด ๊ธฐ์กด ์๊ฒฉ์ ๋์ดํฉ๋๋ค.
$ git remote -v > origin git@github.com:OWNER/REPOSITORY.git (fetch) > origin git@github.com:OWNER/REPOSITORY.git (push)
-
git remote set-url
๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์๊ฒฉ์ URL์ SSH์์ HTTPS๋ก ๋ณ๊ฒฝํฉ๋๋ค.git remote set-url origin https://github.com/OWNER/REPOSITORY.git
-
์๊ฒฉ 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๋ก ์ ํ
-
ํฐ๋ฏธ๋ํฐ๋ฏธ๋Git Bash๋ฅผ ์ฝ๋๋ค.
-
ํ์ฌ ์์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ก์ปฌ ํ๋ก์ ํธ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
-
๋ณ๊ฒฝํ๋ ค๋ ์๊ฒฉ์ ์ด๋ฆ์ ์ป๊ธฐ ์ํด ๊ธฐ์กด ์๊ฒฉ์ ๋์ดํฉ๋๋ค.
$ git remote -v > origin https://github.com/OWNER/REPOSITORY.git (fetch) > origin https://github.com/OWNER/REPOSITORY.git (push)
-
git remote set-url
๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์๊ฒฉ์ URL์ HTTPS์์ SSH๋ก ๋ณ๊ฒฝํฉ๋๋ค.git remote set-url origin git@github.com:OWNER/REPOSITORY.git
-
์๊ฒฉ 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'
์๊ฒฉ ์ด๋ฆ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ ฅํ๋์ง ํ์ธํฉ๋๋ค.