브랜치를 개발할 때 핫픽스를 관리하는 것이 마스터와 매우 다른가요?
마스터 브랜치 및 개발 브랜치와 함께 "Git Flow"브랜치 모델을 사용하고 있습니다. 주요 새 릴리스를 작업 중이므로 개발 브랜치가 마스터 브랜치와 크게 다릅니다. 이로 인해 마스터 브랜치에 핫픽스를 만들고 다시 개발에 병합해야 할 때마다 문제가 발생합니다. 거의 항상 갈등이 있으며, 그것은 진정한 고통이되고 있습니다.
이것을 관리하는 가장 좋은 방법은 무엇입니까? 수동으로 개발할 때 작은 핫픽스를 변경 한 다음 마스터를 다시 개발로 병합하지 않고 준비가되었을 때 모든 것을 마스터에 병합하는 것이 더 쉬울 것입니다. 이것이 가능한가?
얻을 수있는 가장 간단한 방법은 몇 가지 다른 하나 개의 지점에서 커밋은 체리 따기 .
에서 수정한다고 가정 master
이있는 해시를 저지 HASH
당신은 당신에이 핫픽스를 먹고 싶어 devel
A, 가지 않는 git checkout devel
a로 다음 git cherry-pick HASH
. 그게 다야.
에서 으로 모든 변경 사항 을 적용하려면 다음을 사용하여 수행 할 수 있습니다.master
devel
git checkout devel
git rebase master
반대 시나리오가있는 경우 ( devel
분기 에서 개발 중에 핫픽스를 만들고에 완전히 병합 master
되기 전에 해당 수정 사항을 적용하려는 경우) 워크 플로는 매우 유사합니다. 핫픽스에 해시가 있다고 가정하면 다음과 같이하십시오 .devel
master
HOTFIX_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
( 맨 페이지 참조 ) .develop
develop
작업중인 오픈 소스 프로젝트에서 버그 수정 릴리스를 관리하기 위해 유사한 프로세스를 사용합니다. master
버그 수정을 적용해야하는 위치보다 항상 앞서 있으므로 수정이 필요한 태그에서 분기를 만들고 수정 및 릴리스를 적용한 다음 새 태그에 태그를 다시 지정하고 master
. 이로 인해 버전 번호 때문에 충돌이 발생하지만 위의 명령으로 피할 수 있습니다.
도움이되기를 바랍니다.
나는 일반적으로 대부분의 경우에 아주 잘 맞는 이 가이드 를 따르고 갈등과 큰 변화 로 인한 문제를 피 합니다.
브랜치를 생성 하기 전에 만 feature
브랜치에서 작업 하고 병합 할 수 있다면 (실제로 릴리스를 준비하고 있음을 의미) ...이 방법은 경험하는 병합 충돌의 대부분을 피해야합니다.development
release
feature-breaking
브랜치 에서 주요 변경 사항이 발생 하므로이 feature-breaking
브랜치가 개발에 병합 될 때 한 번만 충돌 이 발생할 수 있습니다 . 또한 언제든지 브랜치에 병합 development
하여 release
업데이트 할 수 있습니다.
당신은 또한 최소한의 또는 전혀 충돌하지 않는 상태에서 당신이 가진 development
모든 것들에 합쳐지는 것에 시원 hotfix-branch
할 것입니다.
내가 링크를 공유 가이드는 이전에 결코에서 병합하지에 큰 강조한다 development
으로 master
또는 뒤로를. 항상 release
브랜치 를 통해 릴리스를 처리하십시오 .
'programing' 카테고리의 다른 글
비디오를 HTML5 ogg / ogv 및 mpg4로 변환 (0) | 2020.12.31 |
---|---|
핫 스왑 메커니즘을 통해 런타임에 메서드 변경 (0) | 2020.12.31 |
무료 자바 데이터 시각화 라이브러리? (0) | 2020.12.31 |
HTML5 플레이어가 내장 된 휴대 기기에서 YouTube 자동 재생이 작동하지 않음 (0) | 2020.12.31 |
Python의 지수화-math.pow 및 math.sqrt 대신 ** 연산자를 선호해야합니까? (0) | 2020.12.31 |