우리 제품에 가장 적합한 Git 워크 플로를 선택하려고합니다. 매개 변수는 다음과 같습니다.
- 우리는 일년에 몇 번의 주요 릴리스를 수행합니다.
- 동시에 여러 버전의 제품이 활성화되어 있습니다 (일부 사람들은 v10.1, 일부는 v11.2 등).
- 동시에 여러 릴리스에서 작업 할 수 있어야합니다 (v12.1에서 작업 할 수 있지만 릴리스가 끝날 때 v12.2에서 동시에 작업하기 시작 함)
- 중요한 버그가 발견되면 핫픽스 릴리스를 할 수 있어야합니다
지금까지 내가 생각하는 방식은 다음과 같습니다.
- 단일 원격 저장소가 사용됩니다
- 마스터에서 분기 12.1 생성
- 12.1을 기준으로 피쳐 브랜치를 생성하고 커밋 한 후 다시 12.1로 병합
- 향후 릴리스에서 작업을 시작해야하는 경우 12.1을 기반으로 새 분기 12.2를 작성하십시오.
- 그런 다음 12.1의 기능에 대해 작업 할 때 12.1에서 분기를 작성하고 변경 사항을 커미트 한 후 12.1과 12.2로 병합하십시오.
- 12.2의 기능에 대해 작업하는 경우 12.2에서 분기를 작성하고 변경 사항을 커미트 한 후 12.2로만 병합하십시오.
- 릴리스 12.1이 완료되면이를 마스터 및 태그 마스터 분기에 병합하고 12.1을 사용하십시오.
- 핫픽스가 필요한 경우 가장 오래된 릴리스 분기에서 핫픽스 분기를 만들고 변경 사항을 커밋 한 다음 해당 릴리스 및 영향을받을 수있는 향후 릴리스의 모든 릴리스 분기로 다시 병합합니다. 최신 안정 릴리스 브랜치가 영향을받은 경우이를 마스터로 병합하십시오.
몇 가지 우려 사항이 있습니다.
- 오래된 분기에서 새 분기로 핫픽스를 병합하는 것이 특히 프로세스가 겹치는 경우 매끄럽게 진행 될지 확신 할 수 없습니다. 충돌이있는 것처럼 보이는 경우 각 지점에서 수동으로 핫픽스를 작성하는 것이 더 똑똑합니다.
- 내가 본 워크 플로우 모델은 릴리스 브랜치가 마스터에 병합되고 태그가 지정되고 제거되면 릴리스 브랜치를 많이 유지하지 않는 것 같습니다. 내 문제는 마스터에 태그가있는 모든 릴리스가있는 경우 릴리스 상태를 관리하는 방법을 잘 모른다는 것입니다. 브랜치에서 핫픽스를 사용하는 것이 더 쉬운 것처럼 보이고 항상 다시 돌아갈 수있는 릴리스가 있습니다. 최신 핫픽스가 있습니다 (릴리스의 핫픽스에 태그를 지정할 수도 있음). 마스터로 돌아가서 핫픽스가 적용된 릴리스 사본을 가지고 해당 태그를 업데이트하는 방법이 있는지 확실하지 않습니다.
내가 명시한 요구 사항에 따라 간과했을 수도 있고 더 나은 방법으로 의견을 보내주십시오.