본문 바로가기

에러

[Git 에러] fatal: detected dubious ownership in repository at '경로'

에러 배경

에러는 시간이 지난 프로젝트를 다시 보니 로컬에서는 업그레이드를 했지만, github에 push 하지 않은 커밋이 있어 git remote를 확인하는 과정에서 발생했습니다.

에러 그 잡채

에러 화면

에러를 확인해 보면 ownership(소유권)에 뭔가 문제가 있다는 것을 알 수 있습니다.

 

기존에 사용했을 때 본 적이 없는 에러였기에 개인 레포지토리이고 소유권이 무슨 문제가 있는 거지 하는 의문이 들었습니다.

영어 단어를 몰라 찾아보니 dubious는 모호한이라는 의미를 가진 단어입니다.
다시 해석해 보면 'fatal: 해당 경로의 레포지토리에 모호한 소유권이 발견되었습니다.'라고 볼 수 있습니다.

해결 과정

성공1. 커맨드 창에서 설명해 주는 추천 명령어를 사용해 보니 해결

$ git config --global --add safe.directory '경로'

 

경로의 경우 Windows를 사용 중이기 때문에 \(back slash)가 아닌 /(slash)를 사용해야 합니다.

정리

에러의 원인이 궁금해져 찾아보니 쉽게 설명해 해당 폴더 내부에 있는 Git 레포지토리의 사용자와 Git 명령어를 사용하는 사용자가 달라서 발생하는 문제입니다.

 

해당 에러를 다시 보면 현재 사용자는 'S-1-5-21-...'인데 폴더 내부 레포지토리의 주인은 'S-1-5-32-544'라고 합니다. 그렇기 때문에 에러가 발생한 상황입니다.

'S-1-5-32-544'는 'built-in Administrators group'이라고 윈도우의 잘 알려진 SID 중 하나라고 합니다.

 

그렇기에 global 설정에 있는 safe.directory에 해당 레포지토리를 추가해 주면 해당하는 에러가 발생하지 않습니다.

git의 global 설정을 확인하는 방법
1. git 명령어 사용 `git config --global --list
2. ~/.gitconfig 파일 찾아보기

 

참고

https://woshub.com/convert-sid-to-username-and-vice-versa/#google_vignette

https://youtrack.jetbrains.com/articles/SUPPORT-A-662/Dubious-ownership-detected-when-using-Git-project

https://medium.com/@thecodinganalyst/git-detect-dubious-ownership-in-repository-e7f33037a8f