✅ 구글에 검색해봐도 어떻게 하는지 나와있지 않아 직접 작성하였다. 도움이 되었으면 좋겠다!(내 소중한 2시간을 날려먹게 한 이 어여쁜 친구 덕분에 오랜만에 블로그에 글을 쓴다)
깃허브에서 Private 리포지터리를 생성하면 접근 권한이 있는 사람만 접근할 수 있다.
당연히 나는 내가 내 리포지터리의 소유자니까, git 연결도 쉽게 되겠지 생각했는데,
git push -u origin main remote: Write access to repository not granted. fatal: unable to access 'https://github.com/<깃허브 계정>/<프로젝트 이름>.git/': The requested URL returned error: 403
위와 같은 메시지가 뜨면서 해결되지 않았다. 보통 같으면, 이 문제는 PAT 토큰을 받은 후, git push를 날릴때 터미널이 로그인 정보를 물어볼 때 토큰을 붙여넣으면 해결이 된다고 한다.
PAT 토큰 만드는 법은 간략하게 아래 접은글에 적어놨다. 다른 블로그에도 설명은 잘 되어있으니 패스.
Personal Access Token (PAT) 토큰 생성방법
- GitHub에 로그인 후 Settings > Developer settings > Personal access tokens에서 Generate new token을 클릭.
- 참고로 메뉴에 'Fine-grained Tokens' 와 'Tokens (Classic)' 두 개 중 Tokens (Classic) 으로 진행했음
- Scopes에서 repo와 같은 필요한 범위를 선택하고 Generate token을 클릭.
- 이때 repo, user 체크박스는 선택해주는 것이 좋음
- 생성된 토큰을 복사한 후 안전한 곳에 옮겨 적어놓기 (나중에 다시 안보여줌. 중요)
아무튼, 이렇게 토큰을 발급 받고 git push를 날리면 위와 같은 형식으로 Username, Password를 물어보는데, 이때 패스워드에 발급한 Password를 붙여넣으면 해결이 된다..... 고 했다.
git push -u origin main remote: Write access to repository not granted. fatal: unable to access 'https://github (...)
근데 나는 git push origin master 을 치자마자 바로 위에 있던 저 오류메시지가 나타나면서, 내가 토큰을 입력할 기회조차 주지 않았다. 아니, 열심히 토큰 만들어 왔잖아요.
결국 해결한 방법은 아예 처음부터 깃 설정을 다시 설정하고, git remote를 재설정하면서 내 토큰과 유저 정보를 같이 집어넣는 것이었다.
1. 깃 정보 초기화
rm -rf .git
2. 리포지터리 리모트
git init
git remote add origin <리포지토리 URL>
3. 리포지터리 remote 재설정 (토큰 정보 포함해서)
git remote set-url origin https://<깃허브 유저 이름>:<발급받은 토큰>@github.com/<깃허브 유저이름>/<리포지터리 주소>.git
이 커맨드로 결국 해결을 해냈다. 그냥 처음부터 원격 저장소 연결할 때 내 토큰 정보를 넘겨줌으로써, 권한 문제를 해결한 듯 하다.
4. 잘 되는지 확인하기
git add .
git commit -m "Initial commit"
git push -u origin master
솔직히 별 거 아닌 오류같긴 한데 억까를 당한 느낌이다. 깃허브 코드스페이스에서 작업을 하고 있었는데, 뭔가 환경 설정이 꼬인걸지도 모르겠다. 아무튼, 미래의 나를 위해서 이곳에다가 해결 방법을 적어둔다.
'개발 > Web' 카테고리의 다른 글
구름 IDE에서 Next.js 환경 구축하기 (사지방) (1) | 2024.03.16 |
---|---|
-g firebase-tools 설치 시 protobufjs 오류 (0) | 2024.01.07 |
Prettier HTML 태그 자동 줄바꿈 해제하기 (1) | 2022.11.22 |
[MySQL] 비번 맞게 쳤는데 계속 틀렸다고 할 때 해결 방법 (0) | 2022.09.03 |
[React 공부] Typescript를 쓰는 이유와 기능 (0) | 2022.08.25 |