2014-09-01 2 views
0

우리는 여러 개발자가있는 프로젝트를 가지고 있습니다. 각 개발자는 자신 만의 지형지 물을 가지며 기능이 완료되면 마스터와 병합되고 원격 저장소에 푸시됩니다. 문제가 발생합니다 : 여러 사람이 기능을 제공하기 위해 노력하고 있습니다 그들은 모든 변경 사항을 밀고 특징 중 하나는 버그가여러 개발자에게 git 브랜치 사용하기

  1. 합니다. 원격에서 모든 기능을 보조 마스터로 푸시 할 수있는 방법이 있습니까? 테스트가 실행되고 모든 것이 잘되면 원격의 마스터로 푸시?

  2. 모든 개발자가 자신의 기능에 대해 작업하고 있으며 응급 상황이 발생하면 어떻게 처리하는 것이 좋을까요? 개발자 중 일부가 이미 푸시했을 수도 있지만 긴급 수정 만 푸시하려고합니다.

+0

자신의 지점이있는 모든 개발자 대신 자신의 저장소에있는 모든 준비 작업을 수행 할 것을 고려하지만 원하는대로 게시 작업을 수행 한 다음 게시 할 기록을 정리하고 공개 테스트에 병합하십시오 브랜치 (branch), 마스터 (master)가 지나면 빨리 전달됩니다. 개발자는 자신의 코드를 가장 잘 알고 있으며 일반적으로 리베이스를 쉽게 수행 할 수 있으며 제작 과정에서 지저분한 역사가있는 이유는 없습니다.순전히 선형을 원하지 않는다고해도 개인적으로 완료된 위 츠 커밋을 가장 잘 수행하고 겹치는 개인 작업을 동기화하는 협업에 의존한다고합니다. – jthill

답변

4

광고 1. 가능합니다. 원하는 경우 원격 저장소의 다른 지점을 "보조 마스터"로 만듭니다. 예를 들어 devel과 같이 원하는 이름을 지정할 수 있습니다.

Ad 2. 우리 팀에는 브랜치 ()가 있습니다.이 브랜치는 프로덕션 서버에서 실행중인 것과 동일한 버전이어야합니다. 따라서 핫픽스를 적용해야하는 경우 마스터의 현재 상태에 대해 걱정할 필요가 없습니다. 단지 에만 적용됩니다.

나는 적어도 영감이 읽을 것을 권장합니다 : A successful Git branching model

+0

그레이트 링크! +1, 일부 "우수 사례"를 갖는 데 매우 유용합니다! –

+0

링크를 가져 주셔서 감사합니다. 그래서 당신이 제안하는 모델에서 한 가지 질문은 보조 마스터를 가지고 많은 사람들이 기능을 추진하고 있다는 것을 의미합니다. 어떤 사람들은 버킷이 될 수 있습니다. 사람들이 그 커밋을 되돌 리지 않으면 뒤에 남을 수 있습니다 ... 많은 지저분한 상황이 발생할 수 있습니다. 끊임없는 조정과 의사 소통이 필요하기 때문에 발생합니다. 어떻게해야합니까? – Mark

+0

@Mark 나는 당신의 질문을 완전히 이해하지 못한다. 보통 _master_는 코드베이스의 가장 최근이지만 안정적인 버전으로 유지됩니다. _master_를 비 안정 상태로 만들 수있는 개발은 대신 자체 기능 분기에서 수행됩니다. 작업이 완료되거나 안정성에 도달하면 마스터로 병합 될 수 있습니다. 또한 마스터는 때때로이 기능 지부에 병합되어 다른 변경 사항과 함께 최신 상태로 유지됩니다. – Messa

1

사람들은 자식과 함께 할 모든 쉽습니다. 아이디어는이 될 것이다 : 마스터를 추적하고 기능을 얻을 수

  • staging 지점 "안정"입니다

    • master 지점 먼저 병합 : 최종 테스트가 완료되는 곳이다.
    • 수많은 지형지 물입니다.

    긴급 수정 사항이 마스터에서 수행하는 경우

  • , 이것은 여러 가지 방법으로 처리 할 수 ​​있습니다 :

    • 이 (가) 각 기능 브랜치에 커밋 체리 - 선택하십시오. 또한 다른 지점에 수정 사항을 적용하고 여기에서 cherry-pick을 선택할 수도 있습니다. 체리 피킹은 극히 현지화되어 있으며 어떤 지점 (원칙적으로)을 왕래 할 수 있습니다.
    • 병합 마스터를 기능 분기에 병합하고 "업스트림"변경 사항을 모두 포함합니다.
    • 기능 분기를 마스터에 리베이스합니다. 이것은 본질적으로 이전 항목입니다. 하나의 큰 차이점이 있습니다. rebase는 모든 브랜치의 커밋을 마스터의 팁으로 되감기 및 재생하므로 리베이스 후 브랜치가 병합 될 때 매우 선형적인 구현 이력을 가지며 모든 브랜치의 커밋은 커밋은 연속 된 시리즈로 나타납니다.