1. Main : 실제 프로덕션
2. Develop : 개발자용
3. Feature/F1, Feature/F2, ... : 작업별 브랜치
4. Release : Main과 Develop 사이
5. Hotfix : 급하게 수정해야할 때 사용
merge를 통해 합병할 경우 각 브랜치에 push한 시점까지 모두 적용됨. 백업해야 하거나 디버깅해야 할 경우 시점을 선택하기에 어려운 경우가 발생(history가 복잡). rebase를 통해 여러개의 commit을 통합(squash)할 수 있고, 관리가 편해짐.
git rebase -i main
하면 커밋들을 볼 수 있는 vi가 뜸git push origin feature/login -f
(rebase는 commit history를 정리하는데, 같은 브랜치에서 rebase하면 history가 달라짐. git이 history가 다른 branch의 push를 허용하지 않기 때문에 force옵션 추가.)
1. 충돌 난 경우 터미널 또는 vscode 좌측하단에서 rebase ~ 1/6
과 같이 rebase가 진행중임을 알려줌.
2. 충돌된 코드를 수정 후 git add .
3. 수정사항이 없으므로 git commit
생략
4. git rebase --continue
5. 멈춰있던 rebase가 진행됨(충돌 재발 시 2~4번 반복)
6. 계속 해결이 안된다면 git rebase --abort
로 rebase 전 상황으로 롤백