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을 변경합니다.

Tip

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. Terminal(터미널)Terminal(터미널)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. Terminal(터미널)Terminal(터미널)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)

Note

git remote rm은 서버에서 원격 리포지토리를 삭제하지 않습니다. 로컬 리포지토리에서 원격 및 해당 참조를 제거하기만 합니다.

문제 해결: ‘remote.[name]’ 구성 섹션을 제거할 수 없음

이 오류는 삭제하려는 원격이 없음을 의미합니다.

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

원격 이름을 올바르게 입력했는지 확인합니다.

추가 참고 자료