현재 개발 중인 프로젝트는 버전 관리 도구로 git을 사용하고 있는데
일반적으로 개발, 개발 및 마스터의 두 가지 분기가 있습니다
개발 중에 개발,
마스터에 공식 버전을 게시하세요.
현재 이런 상황이 있습니다.
설계된 기능이 있지만 여러 가지 이유로 개발 브랜치에서 개발한 후에는 정상적으로 사용할 수 없습니다
.다른 교정 설계 솔루션을 임시 대체 솔루션으로 사용해야 합니다. 이 대체 솔루션은 온라인에 있어야 하며 마스터에 게시되어야 합니다.
원래 기능이 성숙해지면 이 구제책을 삭제하고 다시 원래 기능으로 전환하세요
어떤 Git 분기 전략을 사용해야 하나요?
Gitlab 흐름에서 병합 요청 방법을 권장합니다
마스터 및 개발 브랜치를 직접 푸시할 수 없습니다
주인 = 제작
개발 = 다음 릴리스
새로운 요구사항이 있으면 요구사항 분기 기능/aaa를 생성하세요
개발 완료 후 병합 요청
작성 코드 검토 후
feature/aaa
을develop
브랜치에 병합 온라인에 접속할 때
develop
분기를master
에 병합 출시
master
브랜치포스터 질문은 이렇게 해주세요
으로 병합합니다.feature/aaa
을 기반으로 새로운 브랜치feature/bbb
를 생성하고 수정 작업을 완료한 후develop
,master
로 병합한 후 온라인으로 전환합니다.
feature/aaa
을 계속 개발하여develop
,master
git 워크플로우를 참고하시면 됩니다
은 대략
master
브랜치checkout
의hotfixes
브랜치입니다.hotfixes
에 해결방법을 적고,merge
를master
,develop
에 각각 적습니다. 이 시점에서 이hotfixes
브랜치를 삭제할 수 있습니다.그런 다음
develop
브랜치에서 기능을 개발 및 개선하고 마지막으로develop
브랜치merge
를master
온라인에 추가하세요.참고용으로 더 좋은 방법이 있을 수도 있습니다
으아아아
포스터가 먼저 이 문제를 해결할 수 있도록 도와주세요.
포스터의 브랜치 전략은 특별한 처리가 필요하지 않습니다. 일반적인 프로세스를 따르고 git의 기능을 결합하면 매우 잘 처리할 수 있습니다.
제가 이해한 바에 따르면, 포스터에 언급된 "원래 기능"과 "해결 방법"은 정상적인 코드 제출입니다. 게시자가 혼란스러워하는 것은 임시 해결 방법이 결국 폐기(롤백)되는 문제를 어떻게 처리할 것인지이므로 위에서 언급한 git revert 명령을 사용하면 게시자의 기대를 만족시킬 수 있을 것입니다. 이를 통해 코드 베이스의 모든 작업이 트렁크(마스터, 개발)에 기록될 수 있을 뿐만 아니라 복잡한 분기 모델과 같은 문제도 피할 수 있습니다.
게다가 포스터에 사용된 분기 전략이 @rsj217이 언급한 워크플로우를 따르는지는 모르겠습니다. 개발이 모든 개발자의 주요 개발 브랜치라면 개발이 미완성 기능을 수락하지 않고 직접 제출하는 것이 더 낫다고 생각합니다. 일상적인 개발 작업에서, 특히 여러 기능/분기의 병렬 개발의 경우 여러 기능 분기가 서로 간섭을 피할 수 있습니다.
원래 포스터의 질문으로 돌아가서, 이 사용할 수 없는 디자인은 계속 개발될 수 있으며 개발에 병합되어서는 안 됩니다. 이 브랜치를 기반으로 개선 기능에 대한 개발 브랜치를 체크아웃한 후 이를 개발에 병합하여 릴리스 프로세스에 들어갑니다. 다음 병합 및 되돌리기 제안은 여전히 필요합니다. 필요한 경우가 아니면 프로세스를 위반하지 말고 특별한 처리를 수행하십시오. 또한 모든 코드 커밋 작업은 이러한 방식으로 유지됩니다.
git 워크플로 마스터 마스터 브랜치를 참조하는 것이 좋습니다. 개발은 개발에 사용됩니다. 릴리스에 사용됩니다. 새 버전을 릴리스하는 데 사용됩니다. 핫픽스는 온라인 버그 및 기타 긴급 작업을 수정하는 데 사용됩니다.
참고용으로 더 좋은 방법이 있을 수도 있습니다
성공적인 Git 분기 모델을 읽는 데 어려움이 있다면 Juven Xu의 성공적인 Git 분기 모델 번역을 읽어보세요
git-flow를 사용하면 간단한 명령을 사용하여 브랜치를 생성하고 완료하는 데 도움이 됩니다. 그리고 표준화된 릴리스, 핫픽스, 기능 워크플로가 있습니다