여러 계정 관리 정보
경우에 따라 GitHub에서 여러 계정을 사용해야 할 수 있습니다. 예를 들어 오픈 소스 기여를 위한 개인 계정이 있을 수 있으며, 고용주는 엔터프라이즈 내에서 사용자 계정을 만들고 관리할 수도 있습니다.
를 사용하여 GitHub의 퍼블릭 프로젝트에 기여할 수 없으므로 이러한 리소스에는 개인 계정을 사용하여 기여해야 합니다. 자세한 내용은 GitHub Enterprise Cloud 설명서의 "Enterprise Managed Users 정보"를 참조하세요.
여러 개의 계정을 사용해야 하는 경우 계정에 로그인한 상태를 유지하면서 계정 간에 전환할 수 있습니다. 예시, 개인 계정 및 서비스 계정 간 전환 자세한 내용은 "계정 간 전환" 항목을 참조하세요.
워크스테이션 하나를 사용하여 두 계정에서 기여하려는 경우 혼합한 프로토콜을 사용하여 리포지토리 데이터에 액세스하거나 리포지토리별로 자격 증명을 사용하여 Git에서 기여를 간소화할 수 있습니다.
경고: 워크스테이션 하나를 사용하여 별도 계정 두 개에 기여하는 경우 주의해야 합니다. 둘 이상의 계정을 관리하면 실수로 내부 코드가 유출될 가능성이 높아질 수 있습니다.
를 사용할 필요가 없는 경우 GitHub에서 에 대한 모든 작업에 하나의 개인 계정을 사용하는 것이 좋습니다. 단일 개인 계정을 사용하면 하나의 ID를 사용하여 개인, 오픈 소스 또는 전문 프로젝트의 조합에 기여할 수 있습니다. 다른 사용자는 계정을 초대하여 개인 리포지토리와 조직 소유 리포지토리 둘 다에 기여할 수 있으며, 이 계정은 여러 조직 또는 기업의 구성원일 수 있습니다.
HTTPS 및 SSH를 사용하여 두 계정에 기여
워크스테이션 하나에서 계정 두 개에 기여하는 경우 각 계정에 대해 다른 프로토콜 및 자격 증명을 사용하여 리포지토리에 액세스할 수 있습니다.
Git은 HTTPS 또는 SSH 프로토콜을 사용하여 GitHub의 리포지토리에서 데이터에 액세스하고 업데이트할 수 있습니다. 리포지토리를 복제하는 데 사용하는 프로토콜은 리포지토리에 액세스할 때 워크스테이션이 인증하는 데 사용할 자격 증명을 결정합니다. 계정 관리에 이 방법을 사용하면 HTTPS 연결에 사용할 계정의 자격 증명을 저장하고 SSH 연결에 사용할 다른 계정에 SSH 키를 업로드합니다.
리포지토리 페이지에서 리포지토리를 복제하기 위한 HTTPS 또는 SSH URL을 모두 찾을 수 있습니다. 자세한 내용은 "리포지토리 복제" 항목을 참조하세요.
SSH를 사용하여 GitHub의 리포지토리에 액세스하는 방법에 대한 자세한 내용은 "SSH를 통한 GitHub 연결" 항목을 참조하세요.
HTTPS 및 personal access token을(를) 사용하여 여러 계정에 기여
또는 두 계정에 HTTPS 프로토콜을 사용하려는 경우 각 리포지토리에 대해 서로 다른 자격 증명을 저장하도록 Git을 구성하여 각 계정에 대해 서로 다른 personal access token을(를) 사용할 수 있습니다.
-
터미널을 엽니다.
-
자격 증명 관리자의 사용을 확인하려면 다음 명령을 입력하고 출력을 확인합니다.
Shell git config --get credential.helper
git config --get credential.helper
-
출력에서 자격 증명 관리자를 사용하고 있음을 확인하는 경우 자격 증명 관리자에 대해 저장된 자격 증명을 지웁니다.
- 출력에 자격 증명 관리자의 이름이 포함되지 않으면 구성된 자격 증명 관리자가 없는 것입니다. 따라서 다음 단계를 진행할 수 있습니다.
-
출력이
osxkeychain
인 경우 macOS KeyChain을 사용합니다. 자격 증명을 지우려면 명령줄에서 다음 자격 증명 도우미를 사용할 수 있습니다.$ git credential-osxkeychain erase host=github.com protocol=https > [Press Return] >
-
출력이
manager
인 경우(이전 버전에서는manager-core
) Git 자격 증명 관리자를 사용하는 것입니다. 자격 증명을 지우려면 다음 명령을 실행합니다.Shell echo "protocol=https\nhost=github.com" | git credential-manager erase
echo "protocol=https\nhost=github.com" | git credential-manager erase
-
-
GitHub에서 액세스하는 각 리포지토리의 전체 원격 URL에 대한 자격 증명을 캐시하도록 Git을 구성하려면 다음 명령을 입력합니다.
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true
-
각 계정에 대해
repo
범위가 있는 전용 personal access token (classic)을(를) 만듭니다. 또는 각 계정 및 구성원인 각 조직에 대해 원하는 리포지토리에 액세스할 수 있고 리포지토리 콘텐츠에 대한 읽기 및 쓰기 권한이 있는 fine-grained personal access token을(를) 만듭니다. 자세한 내용은 "개인용 액세스 토큰 관리"을 참조하세요. -
Git을 사용하여 리포지토리를 복제하거나 이미 복제한 리포지토리의 데이터에 액세스할 때 처음으로 Git에서 자격 증명을 요청합니다. 리포지토리에 액세스할 수 있는 계정의 personal access token을(를) 제공합니다.
Git이 리포지토리의 전체 원격 URL을 기반으로 personal access token을(를) 캐시할 것이며, 그러면 올바른 계정을 사용하여 GitHub.com에서 리포지토리 데이터에 액세스하고 쓸 수 있습니다.
-
Git Bash를 엽니다.
-
자격 증명 관리자의 사용을 확인하려면 다음 명령을 입력하고 출력을 확인합니다.
Shell git config --get credential.helper
git config --get credential.helper
-
출력에서 자격 증명 관리자를 사용하고 있음을 확인하는 경우 자격 증명 관리자에 대해 저장된 자격 증명을 지웁니다.
-
출력에 자격 증명 관리자의 이름이 포함되지 않으면 구성된 자격 증명 관리자가 없는 것입니다. 따라서 다음 단계를 진행할 수 있습니다.
-
출력이
manager
인 경우(이전 버전에서는manager-core
) Git 자격 증명 관리자를 사용하는 것입니다. 자격 증명을 지우려면 다음 명령을 실행합니다.Shell echo "protocol=https`nhost=github.com" | git credential-manager erase
echo "protocol=https`nhost=github.com" | git credential-manager erase
-
출력이
wincred
인 경우 Windows Credential Manager를 사용합니다. 자격 증명을 지우려면 다음 명령을 입력합니다.Shell cmdkey /delete:LegacyGeneric:target=git:https://github.com
cmdkey /delete:LegacyGeneric:target=git:https://github.com
-
-
GitHub에서 액세스하는 각 리포지토리의 전체 원격 URL에 대한 자격 증명을 캐시하도록 Git을 구성하려면 다음 명령을 입력합니다.
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true
-
각 계정에 대해
repo
범위가 있는 전용 personal access token (classic)을(를) 만듭니다. 또는 각 계정 및 구성원인 각 조직에 대해 원하는 리포지토리에 액세스할 수 있고 리포지토리 콘텐츠에 대한 읽기 및 쓰기 권한이 있는 fine-grained personal access token을(를) 만듭니다. 자세한 내용은 "개인용 액세스 토큰 관리"을 참조하세요. -
Git을 사용하여 리포지토리를 복제하거나 이미 복제한 리포지토리의 데이터에 액세스할 때 처음으로 Git에서 자격 증명을 요청합니다. 리포지토리에 액세스할 수 있는 계정의 personal access token을(를) 제공합니다.
Git이 리포지토리의 전체 원격 URL을 기반으로 personal access token을(를) 캐시할 것이며, 그러면 올바른 계정을 사용하여 GitHub.com에서 리포지토리 데이터에 액세스하고 쓸 수 있습니다.
-
터미널을 엽니다.
-
자격 증명 관리자의 사용을 확인하려면 다음 명령을 입력하고 출력을 확인합니다.
Shell git config --get credential.helper
git config --get credential.helper
-
출력에서 자격 증명 관리자를 사용하고 있음을 확인하는 경우 자격 증명 관리자에 대해 저장된 자격 증명을 지웁니다.
-
출력에 자격 증명 관리자의 이름이 포함되지 않으면 구성된 자격 증명 관리자가 없는 것입니다. 따라서 다음 단계를 진행할 수 있습니다.
-
출력이
manager
인 경우(이전 버전에서는manager-core
) Git 자격 증명 관리자를 사용하는 것입니다. 자격 증명을 지우려면 다음 명령을 실행합니다.Shell echo "protocol=https\nhost=github.com" | git credential-manager erase
echo "protocol=https\nhost=github.com" | git credential-manager erase
-
GitHub에서 액세스하는 각 리포지토리의 전체 원격 URL에 대한 자격 증명을 캐시하도록 Git을 구성하려면 다음 명령을 입력합니다.
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true
-
각 계정에 대해
repo
범위가 있는 전용 personal access token (classic)을(를) 만듭니다. 또는 각 계정 및 구성원인 각 조직에 대해 원하는 리포지토리에 액세스할 수 있고 리포지토리 콘텐츠에 대한 읽기 및 쓰기 권한이 있는 fine-grained personal access token을(를) 만듭니다. 자세한 내용은 "개인용 액세스 토큰 관리"을 참조하세요. -
Git을 사용하여 리포지토리를 복제하거나 이미 복제한 리포지토리의 데이터에 액세스할 때 처음으로 Git에서 자격 증명을 요청합니다. 리포지토리에 액세스할 수 있는 계정의 personal access token을(를) 제공합니다.
Git이 리포지토리의 전체 원격 URL을 기반으로 personal access token을(를) 캐시할 것이며, 그러면 올바른 계정을 사용하여 GitHub.com에서 리포지토리 데이터에 액세스하고 쓸 수 있습니다.
SSH 및 GIT_SSH_COMMAND
를 사용하여 여러 계정에 기여
두 계정에 대해 SSH 프로토콜을 사용하려는 경우 각 계정에 대해 서로 다른 SSH 키를 사용할 수 있습니다. SSH 사용에 관한 자세한 내용은 "SSH를 통한 GitHub 연결" 항목을 참조하세요.
워크스테이션에 복제하는 리포지토리마다 다른 SSH 키를 사용하려면 Git 작업에 대한 셸 래퍼 함수를 작성해야 합니다. 이 함수는 다음 단계를 수행해야 합니다.
git config --get remote.origin.url
과 같은 명령을 사용하여 소유자와 함께 리포지토리의 전체 이름을 확인합니다.- 인증에 정확한 SSH 키를 선택합니다.
- 그에 따라
GIT_SSH_COMMAND
를 수정합니다.GIT_SSH_COMMAND
에 대한 자세한 내용은 Git 설명서의 환경 변수를 참조하세요.
예를 들어, 다음 명령은 인증에 PATH/TO/KEY/FILE 에 있는 프라이빗 키 파일을 사용하여 GitHub.com에서 OWNER/REPOSITORY라는 리포지토리를 복제하는 SSH 명령을 지정하도록 GIT_SSH_COMMAND
환경 변수를 설정합니다.
GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY
GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY