Develop/etc
[Git] cherry-pick 수행 시 발생 오류
연로그
2022. 1. 18. 17:30
반응형
cherry pick이란?
: 특정 커밋의 변경사항을 가져오는 작업
자주 발생하는 오류 목록
1. error: Your local changes to the following files would be overwritten by merge: ~ Please, commit your changes or stash them before you can merge.
커밋하지 않은 변경된 파일들의 작업 내역이 날아갈까봐 경고해준다.
해결 방법
👉 변경 사항들 커밋
🔻 변경된 파일이 없는데 위 에러가 발생하는 경우?
더보기
더보기
변경 사항이 스테이징 영역에 존재할 수도 있다.
아래 명령어를 통해 변경 사항을 조회해보자.
$ git status
status 확인과 함께 친절하게도 추천하는 명령어도 알려준다.
이를 반영할거라면 add를, 반영하지 않을거라면 restore 명령어를 수행한다.
$ git add 파일
$ git restore 파일
$ git restore --staged 파일 #스테이징 되돌리기
이후 다시 cherry-pick 명령어를 실행하면 된다.
2. fatal: bad object 커밋해시코드
fatal: bad revision 커밋해시코드
merge를 원하는 커밋을 찾을 수 없어서 발생한다.
해결 방법 1
👉 올바른 커밋 해시 코드인지 확인
해결 방법2
👉 해당 커밋이 존재하는 브런치 최신화
$ git checkout 브런치명 #커밋 내역이 존재하는 브런치 선택
$ git pull #브랜치 최신화
$ git checkout 브런치 #원래 작업중인 브런치 선택
$ git cherry-pick 커밋해시코드 #cherry-pick
3. error: a cherry-pick or revert is already in progress
해결 방법
👉 hint로 주어진 cherry-pick의 옵션을 사용
- --continue: 충돌 시 충돌 수정한 코드가 반영되며 cherry-pick 진행
- --abort: cherry-pick 실행 이전 상태로 되돌리기 (cherry-pick 취소)
- --quit: cherry-pick 실패 시 더 진행하지 않고 빠져나오기
참고
반응형