개발자
안녕하세요 ! git 관련되어 궁금증이있어서 질문남길려고 합니다 ! git flows 전략으로 git을 관리하려고하는데 보통 feature > develop 으로 반영할때도 feature에서 commit을 합친 후 git rebase develop 으로반영을 하는것인지 궁금합니다 ! 커밋이력 보면 squash & merge랑 똑같아 보이기도하고.. 구글링했을때도 feature에서 develop으로의 반영은 squash and merge가 좋다는 말이있어서 헷갈리네요.... ㅜㅜ 그리고 main에서 hotfix 브랜치 생성시 rebase로 main에 반영하고 난 뒤 develop에서도 다시 hotfix를 rebase해주면 되는것인가요?! 두서가 없지만 읽어주셔서 감사합니다!
답변 0
첫 답변을 기다리고 있어요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 12월 13일
안녕하세요! 궁금증에 대해 설명드리겠습니다. 1. **feature > develop 브랜치 반영방법** git flow 전략에서 feature에서 작업을 마친 후 develop로 merge하는 경우에는 commit을 squash해서 하나로 만드는 것이 일반적입니다. 이유는 feature 브랜치의 커밋들은 하나의 기능 구현이라서 그렇습니다. 따라서 `git rebase -i HEAD~n`(여기서 n은 합치고 싶은 커밋 수)를 통해 커밋을 합친(squash) 후 `git checkout develop` > `git merge feature/myFeature`를 사용하게 됩니다. 2. **main과 hotfix 브랜치** hotfix 브랜치는 긴급히 수정해야 할 버그가 있을 경우 main에서 분기하여 수정한 후 다시 main으로 merge합니다. 이후에 develop 브랜치 역시 최신 상태로 유지하기 위해 hotfix 브랜치를 merge합니다. 즉, main에서 hotfix로 분기 -> 수정 -> main에 merge (완료된 hotfix를 production-ready branch인 main에 바로 반영) 그다음, develop에서 hotfix를 merge(안정화된 제품 버전을 포함하는 현재 개발 중인 코드 버전인 develop branch도 업데이트) 따라서 rebase보다는 merge가 주로 사용되는 방식입니다. 이러한 프로세스를 거치면 커밋 이력에서도 보다 명확하게 언제 어느 버그가 수정되었는지 추적이 가능합니다. Git Flows의 사용법은 다양하니 본인의 팀 상황에 맞춰 적절히 선택하시는 것이 중요합니다!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!