2010-03-17 2 views
1

저는 현재 프로젝트에서 정의 된 몇 가지 브랜치를 가지고 있는데, 마스터 브랜치를 제외한 모든 것이 동일한 작은 파일 세트 (10 개 미만)로만 마스터 브랜치와 다릅니다.두 파일 만 다른 두 GIT 브랜치를 동기화합니다.

master에 새 기능을 구현 한 후 최소한의 노력으로 다른 분기에 변경 사항 및 복제본을 복제하고 싶습니다. 여기서 권장되는 접근 방법은 무엇입니까?

+2

'자식 병합 master' 문제의 새로운 기능 : 그냥이 비슷한 질문을 찾았나요? 한 명령에서 여러 분기에 대해 실행하는 방법을 원하십니까? –

+0

@ 지미, 제 대답의 두 번째 단락을 확인하십시오. 그리고 어떻게 생각하는지 알려주세요. –

답변

2

당신은 세 가지 선택이 있습니다

  • merge :에에게 특정 적용 마스터의 모든 변경 한 지점에 표시해야하지만 항상 그런

  • cherry-pick없는 경우 흥미로운 지점에 커밋

  • rebase : 지점이 아직 푸시되지 않은 경우 가장 좋은 해결책 : 재생 t 그는 마스터

그러나 위에 지사의 커밋 : 세 가지 경우에, 당신은 당신이 변경 사항을 통합하려는 브랜치를 체크 아웃해야하고, 각 지점에 대한 것을 반복합니다.

브랜치가 다른 하나에서 만든하지 않는 :

이 경우
---o    branch B1 
    \ 
    ----o  branch B2 
      \ 
      ----o branch B3 

, 당신은 할 수 :

  • 가장 구체적인 지점에 대한 변경 사항을 (B3 여기에) 합병, as recommanded in this FAQ
  • B3에서 작업 완료
  • 그런 다음 부모 분기 B2에서 병합하십시오 (변경 사항이 발생하지 않은 경우). 수도 (git checkout B1, B2에 git merge B2을 작업을 완료) 일반적으로 나는 한 가지에 몇 가지 중요한 일을 해결할 때
0

: B2에, 이것은 빨리 감기 병합) B1에 대한

  • 반복 (즉 실제로 체리 픽 만 병합합니다으로도) 주인, 나는 같은 수정이 다른 지점에 복제하려는 경우, 내가 git checkout my_latest_feature

    git merge --no-commit mastercherry-pick을 해본 적이 없지만, 내 생각, 내가 생각하는 가장 좋은 방법 이잖아 그 특정 변경 및 git merge --no-commit master 전체 트리 (최신 수정 외에도 다른 커밋) 가져 오려고합니다.

    커밋 내역을 변조하는 명령은 항상 싫습니다. 이유는 왜 결코 rebase

    업데이트 그게 전부 : How to copy commits from one branch to another?

  • 관련 문제