백업은 git rebase를 하기전에 실행하기를 추천드립니다. rebase에 익숙하지 않으면 파일을 날릴 수 도 있기때문에 꼭 백업을 하시기를 바랍니다.
백업은
cp -rpv adwards-frontend adwards-frontend2 작성하는데
cp -rpv 왼쪽은 현재의 폴더명, 오른쪽이 새로 생성한 폴더명입니다.
그 후 cd adwards-frontend 를 통해 다시 원본 폴더로 이동하시면 됩니다.
먼저 commit이 여러개가 있거나 메인을 최신화 시키고 브랜치도 최신화 시키기 위해서는git rebase -i main 을 이용합니다
이렇게 커밋 내역이 나오는데 맨위에 커밋을 pick으로 남기고 나머지를 s인 squash로 바꿔줍니다.
그리고 :wq를 눌러주면 저장하고 나오게 되면서
이런 메시지가 있는데 저는 dd를 통해 다 지우고 commit 메시지도 하나로 유지하려고 했습니다.
이렇게 진행한다면 완료 입니다!!
git rebase -i main을 하다가 충돌을 일어나면 로직을 수정하고 git add . 를 해주면서 충돌을 해결해줍니다. 여기서 포인트는 git rebase중에는 git commit을 남기지 않는것 입니다. 이렇게 해결을 하고 나면 git rebase --continue 를 해주면서 해결을 해줍니다. git rebase를 하기전에 되돌리기 위해서 git rebase --abort 를 해주면됩니다.
저는 한 브랜치에서 git commit을 여러개를 남기고 다른 브랜치도 왔다갔다 하면서 한참동안 rebase를 해주지 않았더니 commit사항들이 꼬이기 시작했습니다. 이제 git rebase -i main을 정렬을 통해 합치려고 했더니 커밋 수 만큼 충돌이 일어났습니다. 로직은 엄청 엤날 로직이 나왔고 해결이 되지 않았습니다. 이때는 최신 로직을 직접 넣어주며 충돌을 하나하나씩 해결해 갔고, 결국에는 최신내용으로 git rebase를 완료할 수 있었습니다.