2016-08-10 4 views
0

우리 고객이 바뀌 었습니다. 우리 고객은 프로젝트 중 하나에서 큰 새로운 기능 (FA라고 부름)을 염두에두고 이제이 기능의 하위 집합을 원하지만 다른 방식으로 통합했습니다. FB), 나중에 초기에 요청 된 모든 기능을 넣지 만 FB에서 수행 된 변경 사항과 병합하고 겹치는 변경 사항은 FB에서 가져옵니다. 일부 git 브랜치 모범 사례 병합

가 지금은 마스터에서 새로운 지점의 FB를 만들어 생산

  • FA 가지에 이제 안정된 릴리스

    • 마스터 지점 :

      나는이 자식 상황이있다. 마스터 지점에 모두 넣어

      난 후, FA에서 약간의 변화를 통합하는 몇 가지 작업을하고 나중에 FB와 말에 완전히 FA를 병합 할 필요가 화가가되어 보존하지 않고이 작업을 수행하는 가장 좋은 방법은 무엇

      FA와 FB

  • 답변

    0

    에서 역사를 커밋 가능하면 당신은 당신의 FBFA 지점에서 커밋의 일부를 cherry-pick 수 있습니다. cherry-pick을 사용하여 FA에서 가져올 커밋을 선택하고 FB에 통합 할 수 있습니다.

    FB 브랜치에 있고 FA의 커밋을 통합한다고 가정 해보십시오.

    첫째, 당신은

    git log --oneline 
    

    이제 FA 지점에 커밋의 모든 목록을 얻을 것이다, 당신은 커밋의 모든 받았을 때 - 디스플레이에서의 SHA 커밋 메시지를

    git checkout FB 
    
    git cherry-pick SHA 
    

    --edit 태그를 위의 명령에 전달할 수도 있습니다. 커밋 메시지를 편집 할 수 있습니다.

    또 다른 유용한 점은 cherry-pick옵션을 사용하여 스테이징 영역에 넣을 수 있다는 것입니다. 이것은 체리 선택 몫을 준비 지역으로 집어 넣을 것입니다. 이 시점에서 준비 영역을 부분적으로 또는 전체로 수정할 수 있습니다.

    체리를 골라서 트랙을 유지하려는 경우. -x 옵션을 추가 할 수 있습니다. 그러면 메시지를 커밋 할 소스 SHA가 추가됩니다. 체리를 뽑은 사람을 추적하려면 --signeoff 옵션을 사용하십시오. 커밋 메시지에 사용자 이름을 추가합니다.

    희망이 있습니다.

    참조

    cherry-pick

    +0

    그렇게 간단하지 않다 ...내가 커밋에서 모든 변경 사항을 선택하지 않아야합니다 – giammin

    +0

    @giammin 위의 업데이트를 참조하십시오 :) –