git-flow 모델에서 버그 수정은 어디에 있습니까?


15

일반적으로 Git-flow 모델 핫픽스는 특정 hotfix-*브랜치에 들어가고 릴리스가 release-*브랜치에 들어가기 직전에 작은 통합 수정으로 이동합니다 . 이전 버전의 일반적인 버그 수정 장소가없는 것 같습니다.

그들은 어디에 나타나야 하는가? 그들은 ( 지점 처럼 ) 자신의 bug-*지점 에 있어야합니까 ?developfeature


3
출시 된 코드에서 중요하지 않은 버그가 작은 기능과 다른 이유는 무엇입니까?
Bart van Ingen Schenau

@BartvanIngenSchenau 당신은 그들에게 feature-*가지 를 권장 합니까? 잘못된 행동에 대한 수정이 특징으로 보일 수 있습니까?
구두

1
@Shoe Bart의 의미는 반드시 동일한 분기 접두사를 사용 하지 않아도 기능으로 취급해야한다는 것 입니다.
Darkhogg

3
@Shoe는 : 자식 흐름,를 제외한 모든 지점에서 master, develop, release-*또는 hotfix-*당신이 좋아하는 어떤 접두사를 사용하여 버그에 대해 다른 접두사를 사용할 수 있도록하는 기능 지점입니다. 또한 지정된대로 작동하는 잘못된 동작과 사양에서 벗어난 잘못된 동작의 차이점은 무엇입니까? 두 경우 모두 잘못된 행동이지만 마지막 것만 버그입니다.
Bart van Ingen Schenau

답변:


9

짧은 대답 : 그렇습니다. 예정된 출시 예정인 버그 수정에 대한 분기는 기능 분기에 있어야합니다. 버그 수정을 위해 기능 분기 또는 이러한 분기의 이름을 지정하는 방법은 귀하와 팀의 표준에 달려 있지만 Gitflow를 따르는 경우 동일하게 처리해야합니다.


Bart van Ingen Schenau의 의견 은 좋은 지적입니다.

Gitflow 다섯 개 가지 유형이있다 : master, develop, (접두사 핫픽스 가지 hotfix-로 시작), 릴리스 지점 ( release-및 기능으로 분기. master그리고 develop가지 지점을 장기 실행하고 당신이 그들에 직접 투입하지 마십시오. release-가지 라인을 그릴 만들어 특정 버전의 경우 다음 버전과 릴리스 사이의 버그 수정을 지원합니다 hotfix-분기는 특히 비정기적인 프로덕션 릴리스에 feature-대한 릴리스이며, 향후 릴리스의 개별 기능 개발을위한 것입니다.

의 PR이 기능 지점에 투입 개인 개발자 제외하고 사용되는 환경에서 오는 아무 것도 직접적으로 최선을 다하고해서는 안 master, develop또는 릴리스 브랜치. 이렇게하면 모든 변경 사항을 코드 검토와 함께 변경 사항이 적용되기 전에 적절한 테스트 적용 범위를 보장하고 CI 환경에서 테스트를 통과시킬 수 있습니다. Gitflow 자체가 ' 시험판 버그 수정 또는 변경 사항을 릴리스 브랜치로 직접 커밋 한 다음 개발로 가져 와서 기능 브랜치에 문제가 있습니다.

특별한 경우 release-지점은 적절한 장소가 아닙니다. 소프트웨어가 이미 출시되었으며에 master있습니다. 릴리스가 마스터에 병합되고 태그가 지정되면 해당 특정 릴리스의 릴리스 브랜치가 그 목적보다 오래되었으며 더 이상 존재할 필요는 없습니다. 가지를 정리하는 데 적극적으로 노력하고 있다면 (모든 사람이 있어야한다고 생각합니다), 이것은 옵션조차 아닙니다.

수정이 중요하지 않은 경우 핫픽스 분기도 적합하지 않은 것 같습니다. 핫픽스 브랜치의 목적은 진행중인 개발을 방해하지 않고 누군가가 프로덕션 환경에서 중요한 변경 사항을 매우 빠르게 얻을 수 있도록하는 것입니다. 이를 사용하는 것은 개발 팀의 표준이 아니라 예외입니다. 일반적으로 중요한 핫픽스는 예외적이어야합니다.

남은 것은 기능 분기입니다. 참고 것을 특징 가지에 대한 질문에 링크 된 페이지의 섹션 도 그 기능을 가지는 "이라고도 주제 가지"말합니다. 변경 사항이 향후 릴리스를 대상으로하고 핫픽스 기준을 충족하지 않는 경우 이러한 분기 중 하나에 속해야합니다.


우리는 지점을 마스터, 개발 또는 릴리스하기위한 직접적인 커밋이 없어야한다는 데 동의합니다. 그러나 릴리스 브랜치에서 버그를 발견하고 브랜치 릴리스 및 개발 모두에서 수정해야 할 때 PR 흐름은 무엇입니까? 전체 릴리스 브랜치를 아직 개발에 병합 할 준비가되지 않았지만 버그 수정을 두 곳에서 모두 수행해야하는 경우에는 고유 한 문제가 있습니다. 원하는 경우 새 질문을 게시 할 수 있습니다.
Sap

@Sap 새로운 질문은 좋은,하지만 당신이 그것을 게시 할 경우, 수정이 모두에 통합 될 필요가 그렇게 중요한 이유를 설명하십시오 것 -이 도입되기 전에 중요한 문제가 발견되지 있었다 의미하는 것으로 보인다 develop없습니다, 도입 지점과 릴리스 브랜치 생성 사이 및 / 또는 릴리스 브랜치가 오랫동안 존재한다는 사실을 발견했습니다. 간단히 말해서, 유일한 선택은 체리 픽이라고 생각합니다 (릴리스 브랜치에 수정 및 풀 요청을 제안하고 릴리스 브랜치에 병합하고 풀 요청을 통해 개발에 체리 픽을 제안합니다).
Thomas Owens

5

단일 커밋 인 경우 잘 식별 된 커밋을 만들고 개발 브랜치 위에 푸시하면 기능 브랜치를 생성합니다.

git-flow 작성자의 요청에 따라 정확히 묻는 내용이 있습니다 : 누락 된 버그 수정 지점 # 24


고마워요, 당신이 공유 한 링크가 나를 위해 이것을 정리했습니다.
arcseldon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.