

git branch를 병합하기 전 commit history를 정리하는 것을 깜빡하고 push까지 해버린 상황에 처했다.
rebase
이럴때는 rebase를 이용하면 된다고 한다.
1. 현재 브랜치부터 수정하고 싶은 commit 위치까지 HEAD~ 에 적는다.
//git rebase -i HEAD~(수정하고싶은 commit까지의 거리)
git rebase -i HEAD~5
2. Rebase Vim에서 수정할 commit을 선택, 수정하고 싶은 커밋의 pick을 reword로 변경, 저장 후 나간다.
//before
pick (commint id) 'some commit message'
//after
reword (commint id) 'some commit message'
3. 그럼 경고 창이 뜰 텐데, e를 누르면 커밋 메시지를 편집할 수 있다.

rebase는 한 브랜치에서 변경된 사항을 Patch 하여 적용하는 것이기 때문에,
수정한 커밋 이후로 중복되는 commit이 main브랜치에도 적용된 모습을 볼 수 있다.
main 에는 중요한 Commit 이외의 것을 올리면 가독성이 떨어지기 때문에,
브랜치에서 rebase를 적절히 활용해 main으로 병합하는 습관을 들여야겠다.
주의점
rebase는 로컬에서 작업중일때만 사용해야 한다. 원격 레포에 push전엔 확인을 꼼꼼하게 하기.....
혼자가 아닌 여러명이서 작업중일때 원격 레포지토리에 rebase를 하면 전체적으로 다 한번 꼬이기 때문.
-----
아래는 수정하는데 필요한 약간의 vim 단축키...
커서 뒤에 insert: i
커서 아래줄 추가 후 insert : o
커서 윗줄 추가 후 insert: O
저장 후 나가기 : esc 누르고 wq
Git - Rebase 하기
Git에서 한 브랜치에서 다른 브랜치로 합치는 방법으로는 두 가지가 있다. 하나는 Merge 이고 다른 하나는 Rebase 다. 이 절에서는 Rebase가 무엇인지, 어떻게 사용하는지, 좋은 점은 뭐고, 어떤 상황에
git-scm.com
'Study > PJ log' 카테고리의 다른 글
Next.js Cors Error 처리 (feat. API Routes, TypeScript) (0) | 2023.06.02 |
---|---|
[PJ Log] React 프로젝트에 Next js 적용 (0) | 2023.03.06 |
[log.] 원티드 프리온보딩 인턴십 : 프론트엔드 숏 에세이 (0) | 2023.02.13 |
[Side Project] 일정 관리 어플 개발 (1) : 시작 (0) | 2023.01.15 |