기술 · 실용 가이드
GitHub ‘Repository not found’? 자격 증명을 바꾸기 전에 URL과 계정을 증명하세요
실제 fetch/push URL과 Git이 사용하는 계정을 보존하고 repository 권한과 SSO를 확인한 뒤, 증명된 경계 하나만 고치고 remote refs로 검증합니다.

GitHub의 `Repository not found`는 잘못됐거나 rewrite된 URL, 다른 cached account, repository permission 부족, 또는 유효하지만 organization SSO 승인을 받지 않은 credential을 뜻할 수 있습니다. browser tab은 browser session만 증명합니다.
effective remote와 실패 작업을 보존하고 HTTPS 또는 SSH의 account, repository access, SSO를 확인하세요. 증거가 있는 경계 하나만 바꾸고 `git ls-remote origin`과 원래 작업을 모두 성공시켜야 합니다.
원래 작업과 effective remote 보존
clone, fetch, pull, push 중 무엇이 실패했는지 기록하고 host, owner, repository name, secret을 뺀 전체 error를 저장합니다. 기존 clone에서는 `git remote -v`를 저장합니다.
`git remote get-url --all origin`과 `--push`로 rewrite된 URL을 보고, `git ls-remote --get-url origin`으로 연결 없이 rewrite를 펼칩니다.
의도한 account로 repository와 URL 증명
권한이 있어야 할 account로 browser에 로그인해 repository page를 열고 clone URL을 복사합니다. logged-out 확인은 private access를 증명하지 않습니다.
host, owner, repository name, transport를 비교합니다. effective URL이 틀렸을 때만 origin을 바꾸고 not found만으로 working tree를 삭제하지 않습니다.
Git이 실제로 쓰는 credential 식별
HTTPS에서는 token을 출력하지 말고 credential helper와 account를 확인합니다. credential manager나 GitHub CLI를 쓰고 token을 URL, shell history, log에 넣지 않습니다.
SSH에서는 `ssh -T git@github.com`으로 key가 가리키는 account를 확인합니다. 성공해도 repository permission과 SSO는 별도입니다.
permission, invitation, SSO 확인
account가 owner, 수락한 collaborator, 또는 read access가 있는 team member인지 확인합니다. pending invitation이나 다른 account 권한은 해당하지 않습니다.
SAML SSO organization은 HTTPS token 또는 SSH key authorization을 요구합니다. 이유 없이 token scope를 늘리지 않습니다.
증명된 경계만 복구
URL 수정, HTTPS account 전환, SSH key 선택, invitation 수락, access 요청, SSO authorization 중 증거가 가리키는 하나만 수행합니다.
force push, `.git` 삭제, 미커밋 작업 위 재복제, URL에 token 삽입, 모든 credential 동시 rotation은 하지 않습니다.
remote refs와 원래 작업으로 검증
한 번의 변경 뒤 `git ls-remote origin`을 실행합니다. refs가 돌아오면 current transport로 effective remote에 도달한 증거입니다.
그 다음 원래 clone, fetch, pull, push를 반복합니다. 여전히 not found면 URL, identity, permission, SSO의 정확한 branch로 돌아갑니다.
