본문 바로가기
개발자의 정보/개발관련 상식

GitHub 다계정 사용중 권한 오류 or 접속 불가시

by pastory 2023. 2. 11.

깃 관련 config를 만지다 보면 갑자기 접속이 잘되던 git repository에 접속이 안될 때가 있다. 이때 해결 방법을 알아보자.

회사원 A씨는 회사에서 작업하던 일을 집에서 마무리 하기로 했다.

문제의 발단

집으로 돌아와 회사에서 작업하던 repository를 clone 받아 작업을 하고 git commit을 했다.
그런데 commit을 하고 commit 이력을 보니 자신의 email 주소가 개인 이메일 주소로 되어 있다.

자신의 회사 이메일 주소로 다시 commit 하기 위해 commit을 취소했다.
그리고 작업을 위해 clone 했던 repository 최 상위 디렉토리로 가서 자신의 이메일을 회사 이메일로 바꾸어 다시 push 하려고 했다.

# git 현재 디렉토리 사용자 email 변경
git config user.email {A씨의 회사 이메일 주소}
git push

그러자 비공개로 되어 있는 회사용 github repository를 찾을 수 없다는 응답이 나왔다.

문제의 원인

회사원 A씨는 이 문제의 원인을 알고 있다. 이미 몇 번 겪었기 때문이다.
A씨의 컴퓨터에서 기본으로 사용하는 github 계정은 자신의 개인 이메일 계정이고 이를 기준으로 컴퓨터가 인증 정보를 기억하고 있었다.
하지만 git 설정에서 email 주소를 바꾸자 관련한 인증 정보를 찾지 못하기 때문에 때문이다.

문제의 해결

이럴 때는 git 연결 주소에 계정 정보를 포함시켜 주면 간단히 해결된다.
기존 https://github.com/{회사의 팀}/{회사의 팀의 repository} 주소를 https://{회사용 github username}@github.com/{회사의 팀}/{회사의 팀의 repository} 와 같이 바꾸어 주면 된다.

다시 회사업무 repository 위치에서 정보를 수정해 주자.

git remote remove origin
git remote add https://{회사용 github username}@github.com/{회사의 팀}/{회사의 팀의 repository}
git push {push 하려는 원격 브랜치}

이렇게 작은 해프닝이 끝났다.

알아두면 좋은 깃 설정 명령어 정리

우선 깃 설정 정보를 불러와 보자

# 깃의 설정정보 출력
git config --list

설정정보를 git config 명령을 통해 수정하거나 입력하고 git config --unset 명령으로 해제할 수 있다.
이때 --global 옵션을 주면 컴퓨터 로그인 사용자의 전역 설정이 변경되고 그렇지 않으면 명령하는 현재 디렉토리 기준으로 변경된다.

# 현재 디렉토리 기준 깃 사용자 정보 변경
git config user.name {커미터 이름}
git config user.email {커미터 이메일}

# 현재 디렉토리 기준 깃 사용자 정보 삭제
git cnofig --unset user.name
git config --unset user.email

# 컴퓨터 로그인 사용자의 전역 깃 사용자 정보 변경
git config --global user.name {커미터 이름}
git config --global user.email {커미터 이메일}


# 컴퓨터 로그인 사용자의 전역 깃 사용자 정보 삭제
git cnofig --unset --global user.name
git config --unset --global user.email

댓글