문제 인지
현재 저의 사항은 다음과 같습니다.
보시다시피 feature-auth 브랜치에 다음과 같은 문제가 발생했습니다.
1. feature-auth는 인증 관련 기능을 수행하는 브랜치
2. 브랜치를 바꾸지 않은 상태로 상품등록폼 구현 및 리스트 구현 중에 브랜치 바뀌지 않은 상태였다는 것을 인지
3. 다행이 아직은 커밋을 하지 않은 상태
문제 해결
어떻게 하면 안전하게 상품등록폼 구현 및 리스트 구현중인 작업을 feature-product 브랜치에 옮길 수 있을까 고민을 해봤습니다.
저의 생각은 다음과 같습니다
먼저, develop브랜치로 switch
2번째, develop 브랜치에서 feature-branch를 생성(git checkout -b feature-branch): 위의 그림처럼 아직 생성 안 했습니다
그럼 그림은 이런 모습이 될 것이고 (처음에 그린 브랜치그림이 잘못된 거 같아 수정도 거쳤습니다)
이제 여기서 어떻게 할지 막혀 찾아봤습니다.
0. 일단 feature-auth브랜치에서 잘못한 작업을 커밋시킨다.
1. 작업한 feature-auth 브랜치에서 새로운 feature-product 생성한다.
2. feature-product 브랜치에는 상품등록, 리스트 구현 커밋이 들어 있다.
3. 다시 feature-auth 브랜치로 이동하고 commit 내역을 돌리는 명령어를 입력한다.(git reset --hard HEAD~1)
4. git log를 통해 삭제된 커밋 내역을 확인하고 feature-product 브랜치로 이동한다.
이렇게 하면 될 거 같지만 또 다른 문제가 있습니다.
상품등록폼 구현 및 리스트 구현 중이라는 작업에 로그인 시큐리티 구현도 일부 들어있습니다..
한번 감히 예측을 해보면 위 절차를 진행하고 feature-auth를 develop에 push 하고 feature-product를 develop에 push 하게 된다면 문제가 생길 거 같지는 않을 거 같습니다.
하지만 단점은 feature-product를 develop에 push를 하지 않으면 feature-auth를 작업을 더 이상 진행할 수 없습니다.
만약 작업을 진행하면 같은 부분을 계속 건들고 하기 때문에 충돌이 일어날 가능성이 매우 높을 것 같습니다.
결론적으로 가장 안전한 방법으로 3,4번은 진행하지 않도록 하겠습니다.
하지만 역시 하나의 커밋에 2개이상의 기능이 넣어져 있기에 나중에 에러가 발생했을 때 수정하기가 까다로울 것 입니다.
git에서 commit을 분리
아직 커밋을 진행하지 않았을 때 커밋을 분리하는 방법이 생각났습니다.
각각을 따로 따로 커밋을 시키고 아까 위의 1,2단계를 실시하면 아까 고민되었던 단점이 지워질것입니다.
결론
첫번쨰, commit 분리 완료
최종본
아까 한 깃플로우 그림에서 이제 진짜로 최종본을 완성했습니다
커밋을 분리한 만큼 이런 부분에서 자유로워 진듯 합니다.
이제 이 플로우 방식에 따라 마무리를 짓겠습니다.
원하는 구현이 끝났습니다. 문제가 생기지 않았으면 좋겠습니다 이상
'사이드 프로젝트 > CafeMate프로젝트(SpringBoot)' 카테고리의 다른 글
14주차 CafeMate 주문 관리 프로세스 구현 (0) | 2023.05.26 |
---|---|
10주차 CafeMate 시큐리티 인증 구현 (0) | 2023.05.09 |
10주차 CafeMate RESTAPI 작성 (0) | 2023.05.09 |
8주차 CafeMate 개발 프로세스 다시 정립 (1) | 2023.04.24 |