[Git Error] error: failed to push some refs to .. + git add, commit 취소하기

롬롬·2023년 5월 25일
0

Error 기록

목록 보기
3/3

git add, commit 후 push를 하려하는데 rejected되었다며 제목과 같은 오류가 떴다.

위 오류에 대한 원인은 내 local에는 존재하지 않은 파일(또는 수정사항)이 gitlab(hub)에는 있는 상태에서 나의 local에 있는 다른 파일을 push하려 할 때 발생한다.

따라서, github 또는 gitlab을 pull 해준 뒤, 다시 push 해주면 정상적으로 작동한다.

git pull {origin} {branch_nm: main, master, ..}
git push  {origin} {branch_nm: main, master ..}

그러나, 나같은 경우에는 pull 명령어를 수행할 때 또다른 오류가 발생하였다.

fatal: Need to specify how to reconcile divergent branches.

이 오류에 대한 해결 방법을 git이 힌트를 주는데, 힌트는 다음과 같다.

- git config pull.rebase false #rebase 없이 pull 수행
- git config pull.rebase true # rebase 후 pull 수행 
- git config pull.ff only # fast-forward인 경우에만 pull 수행

이 3가지 방법 중에 본인에게 맞는 방법을 선택할 수 있다.

그리고 나같은 경우에는 이미 add, commit 명령어를 수행해뒀기 때문에 그냥 그 명령만 취소해준 뒤, 다시 push 해줄 수 있다.

  • git add 취소 명령어:
    	> git reset HEAD {file name}
  • git commit 취소 명령어:
    	[방법1]
    	> git reset --soft HEAD^ # commit 취소 후 해당 파일들은 staged 상태로 보존
    
    	[방법2]
    	> git reset --mixed HEAD^ # commit 취소 후 해당 파일들은 unstaged 상태로 보존
    	> git reset HEAD^ # 위와 동일한 역할 수행
    
    	[방법3]
    	> git reset --hard HEAD^ # commit 취소 후 해당 파일들 unstaged 상태로 삭제

++ git push -f {origin} {branch_nm} 을 통하여 강제로 push도 가능하지만, 추천하는 방법은 아님.

profile
🤗🤗🤗

0개의 댓글