우리 회사는 현재 간단한 트렁크 / 릴리스 / 핫픽스 분기 모델을 사용하고 있으며 회사 또는 개발 프로세스에 가장 적합한 분기 모델에 대한 조언을 원합니다.
워크 플로우 / 분기 모델
아래는 내가 본 세 가지 주요 설명이지만 부분적으로 서로 상충되거나 우리가 겪은 후속 문제를 분류하기에 충분히 멀지 않습니다 (아래 설명 참조). 따라서 지금까지 우리 팀은 그다지 훌륭한 솔루션이 아닙니다. 더 나은 일을하고 있습니까?
병합 대 리베이스 (얽힌 대 순차적 이력)
해야 하나
pull --rebase
또는 작업까지 메인 라인에 다시 병합와 대기가 완료? 개인적으로 나는 합병에 의지한다. 왜냐하면 이것은 어떤 작업이 시작되고 완료되었는지에 대한 시각적 설명을 유지하기 때문이며, 심지어이merge --no-ff
목적을 선호하기도한다 . 그러나 다른 단점이 있습니다. 또한 많은 병합의 유용한 특성을 실현하지 않은 - 그것은 아니라고 교환 법칙이 성립 (마스터로 주제 분기를 병합하는 주제 지점에 평균 병합 마스터를하지 않습니다).자연스러운 워크 플로를 찾고 있습니다
절차가 간단한 규칙으로 특정 상황을 포착하지 않기 때문에 실수가 발생하는 경우가 있습니다. 예를 들어, 이전 릴리스에 필요한 수정은 물론 모든 분기로 업스트림을 병합 할 수 있도록 충분히 다운 스트림을 기반으로해야합니다 (이 용어의 사용법이 명확합니까?). 그러나 개발자가 다운 스트림에 추가로 배치해야한다는 사실을 깨닫기 전에 수정 프로그램이 마스터에 수정되며, 이미 푸시 된 경우 (심지어 더 나쁘거나 병합되거나 그에 기반한 것) 남아있는 옵션은 다음과 같습니다. 관련된 위험. 이와 같은 간단한 규칙을 사용하십니까?또한 여기에는 반드시 하나의 토픽 브랜치가 다른 토픽 브랜치를 반드시 배제해야하는 어색함이 포함됩니다 (공통 기준선에서 분기되었다고 가정). 개발자는 방금 작성한 코드가 더 이상 존재하지 않는 것처럼 느껴지는 다른 기능을 시작하고 싶지 않습니다.
체리 픽으로 인해 병합 충돌을 피하는 방법은 무엇입니까?
병합 충돌을 만드는 확실한 방법은 가지 간 체리 픽을 선택하는 것입니다. 다시 병합 할 수 없습니까? 어느 지점에서든 동일한 커밋을 되돌리기 (이 방법은 무엇입니까)에 적용하면이 상황을 해결할 수 있습니까? 이것이 크게 병합 기반 워크 플로를 추진하지 않는 이유 중 하나입니다.
국소 가지로 분해하는 방법?
토픽 브랜치에서 완성 된 통합을 조립하는 것이 좋을지 모르지만 종종 개발자가 작업을 명확하게 정의하지 않았으며 (때로는 "포킹"과 같이 간단하지 않음) 일부 코드가 이미 "기타"토픽에 들어간 경우, 위의 질문에 따르면 다시 거기에서 꺼낼 수 없습니까? 토픽 브랜치를 정의 / 승인 / 졸업 / 릴리즈하는 방법은 무엇입니까?
코드 검토 및 졸업과 같은 적절한 절차 는 물론 아름답습니다.
그러나 우리는 단순히 이것을 관리하기에 충분히 얽힌 상태를 유지할 수 없습니다-어떤 제안? 통합 지점, 일러스트레이션?
다음은 관련 질문 목록입니다.
- 배포 된 응용 프로그램을 핫픽스 가능하게 만드는 좋은 전략은 무엇입니까?
- 사내 개발을위한 Git 사용법에 대한 워크 플로우 설명
- 회사 Linux 커널 개발을위한 Git 워크 플로우
- 개발 코드 및 프로덕션 코드를 어떻게 유지 관리합니까? ( 이 PDF에 감사드립니다 !)
- 자식 릴리스 관리
- Git Cherry-pick vs Merge Workflow
- 여러 커밋을 체리 피킹하는 방법
- 선택적 파일을 git-merge와 어떻게 병합합니까?
- 다양한 커밋을 선택하고 다른 브랜치로 병합하는 방법
- ReinH Git 워크 플로우
- 수정을위한 git 워크 플로우는 절대 원점으로 되 돌리지 않습니다.
- 체리 합병
- OS와 개인 코드를 결합하기위한 적절한 Git 워크 플로우?
- Git으로 프로젝트 유지
- Git 병합 파일이 수정 된 부모 / 마스터와 변경되지 않는 이유
- 힘내 분기 / rebasing 좋은 사례
- "git pull --rebase"는 언제 문제에 빠지게됩니까?
- DVCS는 대규모 팀에서 어떻게 사용됩니까?
또한 작업 중심 개발 에 Plastic SCM이 작성하는 내용을 확인하고 Plastic을 선택하지 않은 경우 nvie의 분기 모델 및 지원 스크립트를 연구하십시오 .