[Git] push 취소하기(ft. non-feat-forward 에러)

박기영·2022년 11월 7일
7

Git

목록 보기
1/8

add하고 commit하고 push까지 해버렸다!
깃허브에 올라간 것도 확인했다!
그런데!!!! 잘못 올려버렸다!!!!
이럴 경우 어떻게 해야할까?

해결 방법

git 로그 확인

git log

VSC 터미널에 위 코드를 입력하면, git을 사용한 본인의 이력이 전부 나온다.

참고 이미지

왜 이걸 하느냐? 특정 커밋으로 회귀하기 위해 커밋 아이디가 필요하기 때문이다.

push 리셋

내가 잘못 push한 커밋이 가장 위에 보이게 되는데,
우리는 이 친구를 지우기 위해서

git reset [회귀하려는 지점의 commit]

이 코드를 사용할 것이다.

가장 위에 있는 커밋을 지우고 싶으니까...
바로 아래에 있는 커밋으로 회귀하면 되는 것이다!

git reset 661b4dfa4a46fa0aeee4c47bb17df17ef0af1839

이제 확인해보자.

git log

참고 이미지

오! 가장 위에 있던(잘못 push한) 커밋이 삭제되었다!

수정하고 다시 push

push를 취소하고 다시 이전 commit으로 돌아왔으니까
이제 수정할 내용을 다시 수정하거나, 올바른 파일로 잘 입력해서
add, commit, push를 진행하도록 해보자.

참고 이미지

그런데...이런 에러가 뜬다!
이는 원격 저장소와 로컬 저장소의 공통 분모가 없는 상태에서 push를 시도할 경우 발생하는 문제이다.

쉽게 말하면...깃허브에는 있는데 로컬에는 없는 상황인 것이다.

git push origin +master

pushbranch 앞에 + 기호를 붙여주면 된다.
이를 통해 강제로 합쳐버리는데...
이 말은 즉, 협업 상황에서는 절대 하지말아야할 행동이라는 것이다.

따라서...본인만의 branch를 생성해서 작업을 하는 것을 필수적이라고 생각된다.
또한, push 전에 반.드.시 오탈자나 파일 누락, 착각 등이 없는지 확인을 하자.

참고 자료

퐈니썬님 블로그
인파_님 블로그
falling_star3님 블로그
HeeJeong Kwon님 블로그
쫄보의삽질님 블로그
Blue__님 블로그
rain98님 블로그

profile
나를 믿는 사람들을, 실망시키지 않도록

0개의 댓글