gitflow를 사용할 때 깨끗한 git 기록 유지-개발시 병합되지 않은 커밋


9

gitflow를 사용하여 release-1.0.0브랜치를 생성하고 둘 모두 master와 병합 할 때 develop두 브랜치 모두 커밋이 누락됩니다.

  • masterrelease-1.0.0병합 된 커밋이 없습니다.develop
  • developrelease-1.0.0병합 된 커밋이 없습니다.master

대신에, 이후에 hotfix-1.0.1생성되어 합병 master이 합병 될 때, develop제 1, 병합에 커밋 커밋 경우 이전이 포함됩니다 release-1.0.0에 합병되었다 master; 그래서 다음과 같이 보일 것입니다 :

User 'john doe' is trying to merge the following commits into 'develop' from 'hotfix-1.1.1'.

* merge release-1.0.0 to master
* merge release-1.1.0 to master
* Fix shopping cart critical bug

이 소리를 혼동하는 경우, 당신은 쉽게 당신이 볼이 everytie는 알 수 develop일반적으로 뒤에 커밋의 커플이다 master(비록 개발, 이론적으로해야 이 주요 지점이기 때문에 앞서합니다. 그 커밋에서 병합 있습니다 release-x.x.xmaster).

깨끗한 역사를 유지하려면 어떻게해야합니까?


"깨끗한 기록"을 정의하십시오.
Jace Browning

3
깨끗한 역사를 원하십니까? gitflow를 사용하지 마십시오. 그것은 정의에 의해 당신의 역사를 오염시킵니다. 대신, 실제로 필요한 것에 대해 생각하고 그 주위에 워크 플로를 구축하면 실제로 작업 방식에 맞습니다.
FP

1
마스터로 병합은 "복사"가되고, 개발을 위해 병합 할 필요가 없습니다. 마스터가 아닌 이전 릴리스 브랜치에서 핫픽스를 수정하고 둘 다 병합하면 문제가 없습니다. 마스터는 모델에 많은 것을 추가하지 않으므로 실제로 완전히 IMO를 삭제할 수 있습니다.
axl

@ axl 나는 당신이 의미하는 바를 이해하지만 가능한 한 문서에 가까운 gitflow를 따르려고합니다. gitflow는 이미 많은 개발자들에 의해 채택 되었기 때문에이 간단한 것에 대한 해결책을 이미 가지고 있어야하기 때문에 나는 어떤 종류의 "hackz"도하지 않을 것입니다.
Christopher Francisco

GitHub 및 기타 장소에서 GitFlow의 다양한 문제를 해결하는 방법에 대한 몇 가지 토론이 있습니다. 때로는은 총알이 없습니다.
axl

답변:


4

좋은 접근 방식은 두 가지 "주요"브랜치를 가지지 않는 것입니다. 마스터와 개발은 일종의 중복입니다. 저자가 브랜드 한 여기 에 철저히 설명되어 있습니다cactus-flow .

git-flow와 반대로 일부 점이 두드러집니다.

  • 하나의 주요 지점
  • 빨리 감기 만 병합

마지막으로 git-flow를 오랫동안 사용한 후 --no-ff병합에 유용한 것이 무엇인지 아직 알지 못하므로 마지막 것은 중요 합니다.

가능한 한 문서에 가까운 gitflow를 따르려고합니다. gitflow는 이미 많은 개발자들에 의해 채택되었으므로이 간단한 일에 대한 해결책이 이미 있어야하기 때문에 나는 어떤 종류의 "hackz"도하지 않을 것입니다

IMHO 그것은 당신의 큰 실수입니다. 가능한 한 git-flow를 고수 할 이유가 없습니다. 그것은 수천 개의 프로젝트에서 사용될 수 있지만 귀하의 프로젝트에는 영향을 미치지 않으며 좋지 않습니다.

Git-flow는 좋은 출발점이지만 다른 방식보다는 툴과 워크 플로우에 적용하는 것을 고려해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.