main
develop
feature
release
hotfix
Rebase code
git rebase -i main
conflict를 만들어 해결
git pull origin main -> git rebase -i main -> git add . -> git rebase --continue -> git push origin feature/
rebase를 하면서 동시에 squash 를 사용해 커밋을 하나로 정리 할 수 있습니다. 꼭 브랜치를 합쳐야 하는 상황이 아니더라도 git rebase -i main 명령어를 통해 중간 중간 브랜치에 쌓인 커밋을 하나로 정리해주세요. 또한 정상적인 경우 PR / 브랜치 당 커밋이 하나여야 한다는 점 기억해주세요!
rebase 도중 충돌이 일어날 경우 마치 코드가 날아간 것 처럼 보일 수 있습니다. 코드가 사라진 것이 아니라 코드를 합치던 도중 중단된 것입니다. 충돌을 해결하고 남은 과정을 끝까지 진행하면 모든 코드가 다 들어와 있게 됩니다. 혹 잘못 리베이스를 했다면, git rebase —-abort (리베이스 도중) 혹은 git reflog 로 돌아갈 지점을 찾은 후 git reset --hard 돌아갈지점 (리베이스 완료 후) 명령어로 복구할 수 있습니다.
충돌 발생 시 에디터에서 충돌 해결 후 git add . → git rebase -—continue 를 반복하되, commit을 해줄 필요는 없습니다.