Jon Purdy는 올바른 아이디어를 가지고 있습니다. git flow
뿐만 아니라 이러한 지점의 실제 관리가 쉬워지고 지점 관리는로 이동하기위한 논쟁입니다 git
.
의는의 기본 개요부터 시작하자 git
당신이에서오고있어 이후, svn
Di의 git
관점. git
다음을 고려하십시오 .
master--...............-.....-..............-
\ / / /
---develop---------............../
\ /
--feature---
위에서,로 분기 master
하고 develop
(로 표시 \
) 분기 develop
로 feature
분기합니다. 분기를 따라 /
커밋 ( -
)을 사용하여 해당 분기를 백업 (으로 표시 )으로 병합합니다 . (커밋이 없지만 병합이 올바른 방법 인 경우 다음 커밋이 다음 커밋 .
임을 나타내는 표시기 가 있습니다 -
).
충분히 쉽다. 메인 릴리스에 핫픽스가 있으면 어떻게합니까?
master--...............-.....-................-...........-.........-
\ / / / \ /| /
\ / / / -hotfix-- V /
---develop---------............../..............-...----
\ / \ V /
--feature--- --feature2...----
에서 develop
분기했습니다 master
. 에서 발견 된 버그는에서 master
분기하여 수정 한 master
후 다시 병합하여 수정되었습니다 master
. 우리는 합병 master
에 develop
, 다음 develop
에feature2
에서 새 코드를 압연하는, hotfix
이 지점에.
로 feature2
다시 병합하면 develop
이력에 develop
와가 포함 됩니다 hotfix
. 마찬가지로, develop
로 병합 feature2
에서 새 코드 master
때문에 병합, develop
다시 master
그것을 기반으로로 그 커밋에 차질없이 일어날 master
그 시간대로에서 분기 한 경우에 master
그 시점에서.
여기 또 다른 방법이 있습니다.
master--..........-........-
\ /\ /
---1.0-- --1.1--
귀하의 1.0 릴리스는 tagged- 얻을 1.0.1
, 1.0.2
, 1.0.3
, 등.
이제 여기 트릭이 있습니다. 1.0에서 버그를 발견했으며 1.1, 1.2 및 1.3에 영향을 미칩니다. 너 뭐하니?
최신 또는 가장 빠른 유지 보수 릴리스를 분기하고 수정하십시오. 그럼 당신은 당신의 새로운 병합 hotfix
에 지점 1.3
에 - 그리고 1.2
, 1.1
하고 1.0
. 각 유지 관리 버전 분기에서 분기하지 마십시오. 병합하지 않는 1.0
으로 master
또는 병합 master
뒷면에 1.0
. 하나의 hotfix
브랜치를 가져와 모든 버전 브랜치에 병합하십시오. 충돌이 있으면 알려줄 것입니다. 코드가 올바른지 확인하십시오 ( git diff
친구).
이제 특정 변경 사항이 모든 곳에 적용됩니다. 계보는 분기되어 있지만 괜찮습니다. 우연이 아닙니다. 1.3
헤드에 1.3.17 태그를 지정하고 에서 분기 된 모든 진행중인 피쳐에 병합 한 다음 계속하십시오 1.3
.
git flow
확장은 이러한 유지 보수, 기능 및 핫픽스 가지를 관리 할 수 있습니다. 워크 플로우가 다운되면 이것은 사소한 것이며 소스 코드 관리에서 많은 문제를 일으 킵니다.
나는 이것이 프로그래밍 팀에서 수행되는 것을 보았지만 프로그래머로서 그렇게 깊이 일하지는 않았으므로 여전히 일상적인 워크 플로우를 둘러보고 있습니다.
git
태그를 추가하도록 할 수 있습니까? 이는git
태그가 유지되지 않기 때문에 빌드 커밋 또는 테스트 실패가 있는 커밋을 실제로 명확하게한다는 이점이 있습니다 .