feature/main 브랜치에 쌓인 커밋을 하나로 정리하기 위해 rebase 시도
$ git rebase -i main
이후 confilct이 발생
(rebase 도중 충돌이 일어날 경우 마치 코드가 날아간 것 처럼 보일 수 있으나, 코드가 사라진 것이 아니라 코드를 합치던 도중 중단된 것)
충돌 해결하고, add → commit했음
(여기서 문제인 듯... commit을 하지 않아도 되는 듯하다)
충돌 발생 시 에디터에서 충돌 해결 후
git add .
→git rebase --continue
를 반복하되, ✨commit을 해줄 필요는 없습니다.✨
이미 PR에 올렸으므로 -f 옵션을 추가해야하나 아래와 같이 시도해 봄
$ git push origin feature/main
에러가 발생해야하는데 자연스럽게 push가 되고 commit 개수대로 올라감 => rebase 실패!😱
만약 잘못 rebase를 했다면, git rebase --abort
(리베이스 도중) 혹은 git reflog 로 돌아갈 지점을 찾은 후 git reset --hard 돌아갈지점
(리베이스 완료 후) 명령어로 복구할 수 있습니다.
위의 내용을 참고하여 git reset --hard (rebase 이전 시점)
명령어를 이용해 시도해보았습니다.
$ git reflog
commit 명령어를 작성하여 잘못 push가 되었기 때문에 commit 이전 시점으로 되돌아가보겠습니다.
$ git reset --hard 0f083c3
reset
을 이용해 돌아갈 시점이 현재 시점이라 아무 변화없음
바로 이전 시점으로 다시 시도
$ git reset --hard e46a0f7
하... commit push한 파일들 다 날라간 듯...
아직 rebase 진행 중이라
$ git rebase --abort
명령어를 통해 일단 rebase 종료
feature/main 브랜치인 상태에서 마지막 커밋 시점으로 rebase 다시 시도
$ git reset --hard 6e-5518
아까 발생했던 rebase 진행 중 coflict 났던 때로 돌아옴!
$ git add .
$ git rebase -—continue
(commit 명령어 때려치워!)
다시이... conflict 해결하고
$ git add .
$ git commit -m "커밋 메시지"
$ git rebase -i main
rebase 성공!
$ git push origin feature/main -f
마지막 push 작업까지 하면!
commit 1
로 변경 완료!