위와 같은 로그를 플젝하면서 자주 접하게 되었다!!
1. check out "메인 브랜치"
2. git pull
3. check out "작업할 브랜치"
4. git rebase "메인 브랜치"
나는 보통 위 순서대로 원격저장소에서 최신 반영사항을 가져오는데 이 중 4번 rebase 에서 conflict가 발생한 상황이다.
rebase
는 브랜치의 커밋을 다른 브랜치 위로 다시 정렬하여 깔끔한 커밋 히스토리를 만드는 데 사용한다.
hint를 보면 git rebase --continue, skip, abort가 있는데 각각 아래와 같은 용도로 사용한다
Continue
Rebase 중 conflict가 발생하면 수동으로 해결한 후, Rebase를 계속 진행(continue로 계속 진행해주면 됨)
Skip
conflict가 발생한 곳을 건너뛰고 rebase를 계속 진행
건너뛴 커밋 내용이 히스토리에서 사라질 수 있음
abort
rebase를 중단하고 시작하기 전 상태로 되돌림
충돌이 너무 많은 경우에 사용할 수 있다
평범하게 conflict가 난 상황이라면 rebase --continue
로 해결해주면서 진행하면 됨
그러나 답이 없는 경우..
rebase --abort
: rebase 중단
git reset --hard origin/<branch-name>
: 원격 브랜치를 강제로 덮어쓰기
위의 방법을 이용해서 강제로 해결?할 수 있다.
그러나 위의 경우 커밋하지 않은 내용, 로컬 커밋 등이 삭제되므로 신중하게 사용해야한다