git push 를 해보며 겪은 3가지 에러

김동환·2023년 8월 8일
0

Learn_Git/GitHub

목록 보기
1/4
post-thumbnail

git push 를 해보며 겪은 세 가지 에러

  1. 깃허브로 push 도중 에러 (git에 add/commit 을 안함)
  2. 비밀번호 에러 (깃허브 토큰)
  3. ! [rejected] 에러 (원격저장소에서 직접적인 수정)

& git branch 명 변경 master > main


1. 깃허브로 push 중 에러

git remote add origin "깃허브 주소" 입력 후 아래와 같은 에러가 발생

  • git init 후 git에 add / commit 을 안하고 바로 push 를 해서 생긴 오류. (나는 바보다)

  • push 까지의 순서를 보면 다음과 같다.

push 까지의 순서 git diagram

(이미지 출처 : https://support.nesi.org.nz/hc/en-gb/articles/360001508515-Git-Reference-Sheet)

해결 방법 : add / commit / push 순서를 지켜라.


2. 비밀번호 에러 (깃허브 토큰 미사용)

user password 입력 후 아래와 같은 에러가 발생

remote: Invalid username or password.
fatal: Authentication failed for '깃허브 레포지토리 주소'

  • Git Push 명령어를 사용하면 Git의 username과 password를 요구하게 되는데, password를 정확하게 입력 했음에도 에러가 발생한다.
  • 21년 8월13일 부터는 모든 Git 작업에는 비밀번호 대신 토큰(또는 SSH 키) 인증이 필요 하다고 한다.

해결 방법 : password 입력 부분에 깃허브에서 발급받은 토큰을 입력하면 된다.


3. ! [rejected] 오류

git push origin main 입력 후 아래와 같은 에러가 발생

  • Github에서 README 에 오타가 보이길래 원격저장소에서 직접 수정한 후 몇 분 뒤 로컬저장소의 프로젝트를 푸시하려고 하는데 오류가 발생한다. 오류명은 ‘! [rejected]’이다. 간단히 말해서 충돌이 일어났다고 한다. 원격저장소 커밋보다 로컬저장소 커밋이 더 오래되었을 때 발생하는 오류라고 이해했다. 해결 방법을 찾아보니 git push origin +main 브랜치명 앞에 '+' 를 붙이면 강제 push, 즉 덮어쓰기가 가능하다고 한다. 하지만 다른 팀원들의 커밋이 날아가는 대참사가 발생한다는 댓글을 보고 더 찾아보니.. 'pull'을 안 했기 때문이f란다. 원격 저장소 커밋을 먼저 로컬 저장소로 pull한 다음 수정 내용을 동기화하고 그 다음 push를 하니 정상적으로 작동한다.

해결 방법 : 깃허브에서 수정하는 짓 금지 / (pull 해야 할 때를 잘 알아야 함.)


& git branch 명 변경 master > main

  • git의 default 브랜치 명은 master로 생성된다.
  • 때문에 브랜치명 불일치로 오류가 발생할 수 있다.
  • Github를 이용하면서 레포지토리를 생성하면 기본 브랜치명이 main 으로 되어 있어 혼란스러울 수 있다. 이는 Black Lives Matter 운동으로 master/slave 등의 IT에서 사용되는 용어에도 정화가 필요하다는 의식이 생기고 있을 때 Github에서 2020년에 레포지토리의 기본 브랜치명을 master에서 main으로 변경하였기 때문이다.
  • git branch 명을 ‘master’ 에서 ‘main’ 으로 바꾸는 입력은 다음과 같다.
    git config --global init.defaultBranch main
profile
프론트엔드 개발자

0개의 댓글