programing

브랜치를 개발할 때 핫픽스를 관리하는 것이 마스터와 매우 다른가요?

nasanasas 2020. 12. 31. 08:29
반응형

브랜치를 개발할 때 핫픽스를 관리하는 것이 마스터와 매우 다른가요?


마스터 브랜치 및 개발 브랜치와 함께 "Git Flow"브랜치 모델을 사용하고 있습니다. 주요 새 릴리스를 작업 중이므로 개발 브랜치가 마스터 브랜치와 크게 다릅니다. 이로 인해 마스터 브랜치에 핫픽스를 만들고 다시 개발에 병합해야 할 때마다 문제가 발생합니다. 거의 항상 갈등이 있으며, 그것은 진정한 고통이되고 있습니다.

이것을 관리하는 가장 좋은 방법은 무엇입니까? 수동으로 개발할 때 작은 핫픽스를 변경 한 다음 마스터를 다시 개발로 병합하지 않고 준비가되었을 때 모든 것을 마스터에 병합하는 것이 더 쉬울 것입니다. 이것이 가능한가?


얻을 수있는 가장 간단한 방법은 몇 가지 다른 하나 개의 지점에서 커밋은 체리 따기 .

에서 수정한다고 가정 master이있는 해시를 저지 HASH당신은 당신에이 핫픽스를 먹고 싶어 develA, 가지 않는 git checkout devela로 다음 git cherry-pick HASH. 그게 다야.

에서 으로 모든 변경 사항 을 적용하려면 다음을 사용하여 수행 할 수 있습니다.masterdevel

git checkout devel
git rebase master

반대 시나리오가있는 경우 ( devel분기 에서 개발 중에 핫픽스를 만들고에 완전히 병합 master되기 전에 해당 수정 사항을 적용하려는 경우) 워크 플로는 매우 유사합니다. 핫픽스에 해시가 있다고 가정하면 다음과 같이하십시오 .develmasterHOTFIX_HASH

git checkout master
git cherry-pick HOTFIX_HASH

이제 커밋이 master및에 devel있습니다. 이 문제를 해결하려면 다음을 입력하십시오.

git checkout devel
git rebase master

커밋은 devel에서 이미 존재하므로에서 사라집니다 master.


이 상황에 대한 일반적인 작업 흐름 은 문제를 해결 하는 bug-fix분기 를 만드는 것 master입니다. 준비가되면 다시 master병합 한 다음에 병합 master합니다 develop.

이것은 버그 수정이 두 분기에서 변경해야하는 코드 사이에서 거의 일대일이라고 가정합니다. 이 경우, 분기가 우선 순위 갖도록 항상 시도 할 수 있습니다 git merge -s ours master( 맨 페이지 참조 ) .developdevelop

작업중인 오픈 소스 프로젝트에서 버그 수정 릴리스를 관리하기 위해 유사한 프로세스를 사용합니다. master버그 수정을 적용해야하는 위치보다 항상 앞서 있으므로 수정이 필요한 태그에서 분기를 만들고 수정 및 릴리스를 적용한 다음 새 태그에 태그를 다시 지정하고 master. 이로 인해 버전 번호 때문에 충돌이 발생하지만 위의 명령으로 피할 수 있습니다.

도움이되기를 바랍니다.


나는 일반적으로 대부분의 경우에 아주 잘 맞는 가이드따르고 갈등과 변화 로 인한 문제를 피 합니다.

브랜치를 생성 하기 전에 만 feature브랜치에서 작업 하고 병합 할 수 있다면 (실제로 릴리스를 준비하고 있음을 의미) ...이 방법은 경험하는 병합 충돌의 대부분을 피해야합니다.developmentrelease

feature-breaking브랜치 에서 주요 변경 사항이 발생 하므로이 feature-breaking브랜치가 개발에 병합 될 때 한 번만 충돌 이 발생할 수 있습니다 . 또한 언제든지 브랜치에 병합 development하여 release업데이트 할 수 있습니다.

당신은 또한 최소한의 또는 전혀 충돌하지 않는 상태에서 당신이 가진 development모든 것들에 합쳐지는 것에 시원 hotfix-branch할 것입니다.

내가 링크를 공유 가이드는 이전에 결코에서 병합하지에 큰 강조한다 development으로 master또는 뒤로를. 항상 release브랜치 를 통해 릴리스를 처리하십시오 .

참조 URL : https://stackoverflow.com/questions/7175869/managing-hotfixes-when-develop-branch-is-very-different-from-master

반응형