2017-04-20 10 views
2
  1. 우리는 는 자식 흐름에 기능 지점에 지점 개발을 통합 할 수 있습니까?git-flow에서 Feature 브랜치로 브랜치를 병합 할 수 있습니까?

  2. 아래 이미지에 표시된 것처럼 두 개발자가 할당 한 2 개의 기능 브랜치 (A (빨간색) 및 B (파란색))가 있습니다. B에서 A의 코드가 필요하면 이 허용됩니다.A은 개발을 위해 푸시하고, B을 개발에서 풀어 주시겠습니까?

  3. 병합을 개발했지만 분기를 병합하지 않고 덮어 쓰지 만 이유는이며 해결 방법은 무엇입니까? 일부로서이 다를 수 있습니다

답변

4

1) 팀은 "불필요한 병합은"역사는 추한하게 생각하지만 기능 가지로 develop 병합 아무 문제를 볼 수 없습니다. 또 다른 방법으로 히스토리를보다 깨끗하게 만들었다면 (그리고 아직 지형지 물을 지우지 않았다면) 지형지 물 지점을 재배치하는 것이지만 지형지 물 지점의 중간 커밋을 깨뜨릴 수 있습니다.

2) 불완전한 특징을 develop에 병합해서는 안됩니다. develop은 언제든지 출시 준비가되어 있어야합니다. 지사 간의 변경 사항을 명확하게 공유하는 것은 까다 롭습니다 (작은 이야기/기능이있는 비교적 민첩한 방법론에서 일반적으로 불필요 함). 그것을하는 대부분의 방법은 약간 타협을 포함한다. 아래를 참조하십시오.

3) 왜 그 행동을 보았는지 확신 할 수 없습니다. 병합을 시도한 방법에 대한 자세한 정보가 필요할 수 있습니다. 지점을 확인하고 git reset --hard HEAD^


확인 등의 일을하고, 그래서 당신이있는 경우에 어떻게 코드를 공유함으로써 (이 병합이 밀려하지 않고 할 경우 최고) 당신은 병합을 취소 할 수 있습니까? 자, Adevelop에 병합하지 말라고 조언하면 "AB에 직접 병합 할 수 있습니까?"라고 생각할 수도 있습니다. 자, 곧 develop으로 병합하는 것보다 낫지 만, A의 부분 구현을 포함하기 때문에 A이 될 때까지 Bdevelop으로 안전하게 병합 할 수 없음을 의미합니다. A이 추진되지 않은 경우

는, 당신은 BA의 시작 부분까지 의존하는 변화를 이동 한 다음 공통 변경 사항이 커밋에 B을 리베이스하는 A의 상호 작용 REBASE를 할 수 있습니다. 그러나 이것은 커밋 분할과 관련 될 수 있으며 중단 된 중간 상태를 만들 수도 있고 푸시되지 않은 분기 (또는 모든 사람이 업스트림 rebase에서 복구해야 함)에 의존합니다.

다른 옵션은 A의 변경 사항을 B에 체리 선택하는 것입니다. 이것은 일종의 리베이스 작업이기도하지만 기존의 모든 커밋을 그대로 남겨 둡니다 (상황이 푸시되면 걱정할 필요가 없습니다). 그러나 공유 변경이 다른 변경 사항이있는 커밋에있는 경우 여전히 쉽지 않습니다. 기능을 develop으로 다시 병합 할 때 궁극적으로 충돌을 일으킬 수 있습니다.

가능한 한 언제나이 상황을 피하는 것이 좋습니다. 기능 B가 기능 A에 의존하는 경우 기능 A가 develop 또는 그 이상으로 올바르게 병합 될 때까지 기능 B를 보류 할 수 있습니다.

+0

대단히 감사합니다. –