원격 리포지토리 추가
새 원격을 추가하려면 리포지토리가 저장된 터미널의 디렉터리에서 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을 변경합니다.
Tip
HTTPS와 SSH URL 간의 차이점에 대한 자세한 내용은 "원격 리포지토리 정보"을(를) 참조하세요.
git remote set-url
명령은 다음 두 개의 인수를 사용합니다.
-
기존 원격 이름. 예를 들어 일반적으로 선택하는 두 가지는
origin
또는upstream
입니다. -
새 원격 URL. 예시:
- HTTPS를 사용하도록 업데이트하는 경우 URL은 다음과 같을 수 있습니다.
https://github.com/OWNER/REPOSITORY.git
- SSH를 사용하도록 업데이트하는 경우 URL은 다음과 같을 수 있습니다.
[email protected]:OWNER/REPOSITORY.git
원격 URL을 SSH에서 HTTPS로 전환
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
현재 작업 디렉터리를 로컬 프로젝트로 변경합니다.
-
변경하려는 원격의 이름을 얻기 위해 기존 원격을 나열합니다.
$ git remote -v > origin [email protected]:OWNER/REPOSITORY.git (fetch) > origin [email protected]: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로 전환
-
Terminal(터미널)Terminal(터미널)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 [email protected]:OWNER/REPOSITORY.git
-
원격 URL이 변경되었는지 확인합니다.
$ git remote -v # Verify new remote URL > origin [email protected]:OWNER/REPOSITORY.git (fetch) > origin [email protected]: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)
Note
git remote rm
은 서버에서 원격 리포지토리를 삭제하지 않습니다. 로컬 리포지토리에서 원격 및 해당 참조를 제거하기만 합니다.
문제 해결: ‘remote.[name]’ 구성 섹션을 제거할 수 없음
이 오류는 삭제하려는 원격이 없음을 의미합니다.
$ git remote rm sofake
> error: Could not remove config section 'remote.sofake'
원격 이름을 올바르게 입력했는지 확인합니다.