How to Change Users

대부분의 경우는 단일 사용자로 Git를 운영하겠지만 다양한 이유에 의해서 Git 사용자를 변경해야 하는 상황이 존재한다.

여기서는 이런 문제를 해결하는 방법에 대해서 알아본다.

발생 상황

git 설치 후에 기본 환경 설정을 했을 것이다.

git 환경 설정
# 전역 설정인 경우
$ git config --global user.name "user name"
$ git config --global user.email "user email"

# git 단위 설정인 경우
$ git config user.name "user name"
$ git config user.email "user email"

이런 상황에서 지정한 사용자로 Git에 로그인 한 후에 다른 사용자를 사용해서 push를 하면 다음과 같은 오류가 발생하게 된다.

다른 사용자로 로그인된 상태에서 git push 오류 발생
$ git push origin master    # terminal에서 실행한 것과 VSCode와 같은 IDE에 연동한 경우도 동일한 상황이 발생한다.
remote: Permission [git_url.git] denied to [user_id]
fatal: unable to acess `[git_url]`: The requested URL returned error: 403
...

오류 메시지 내용은 해당 사용자로 remote repository에 push할 권한이 없다는 것이다.

해결 방법

구글을 검색해 보면 대부분 아래와 같은 해법을 제시한다.

  • 사용할 git 프로젝트에서 config 설정을 사용자에 맞도록 변경하면 된다.
    git 환경 프로젝트 단위 설정
      $ git config user.name "new user name"
    $ git config user.email "new user email"
    

    권장하는 방식으로 해 봐도 동일한 오류가 발생한다. (당연히 이미 로그인 사용자 정보를 기준으로 하므로 설정을 바꾼다고 해서 로그인 정보가 변경되지는 않는다)
  • ssh 키 관련해서 여러 가지 처리를 제시하는 것도 있지만, 제대로 안되는 상황이 발생한다.

환경 설정을 바꿨기 때문에 지금 push 하려는 사용자와 로그인 사용자가 달라졌으므로 로그인을 다시 물어봐야 할 것 같은데, 실제로는 로그인을 다시 물어보지 않는다.

의외로 쉽게 해결하는 방법은 다음과 같다.

  • Mac 환경

    • Spotlight 검색 등으로 키 체인 접근 앱을 실행한다.

      Spotlight 검색
      [ Spotlight 검색 ]

    • 키 체인 접근 앱에서 로그인을 선택하고 github.com을 찾아서 더블클릭한다.

      Key chain access
      [ Key chain access ]

    • 로그인 정보 창에서 계정암호를 변경하고 저장한다.

      Github 로그인 변경
      [ Github 로그인 변경 ]

  • Windows 환경

    • 제어판 > 사용자 계정 > 자격 증명 관리자를 실행한다.
    • windows 자격 증명 항목의 github 관련 정보를 수정한다.
    • 위와 같이 설정한 후에 다시 push를 실행하면 잘 처리가 된다.

결론

오류의 원인이 로그인된 사용자 정보를 그대로 사용하려고 하는 것이기 때문에 터미널을 사용하던 VSCode와 같이 IDE에 연동해서 사용하던 이미 사용했던 로그인 정보를 삭제 또는 변경해서 로그인을 다시하면 쉽게 해결이 가능하다.