2012-10-14 6 views
0

로컬 저장소의 업스트림 프로젝트를 일부 변경했습니다. 원래 상류의 레포를 내 로컬 프로젝트에 복사했습니다. 이제 커밋 범위를 포착하여 업스트림 저장소에 적용하고 싶습니다. 패치로이 작업을 수행 할 수 있지만이 작업을 위해 서브 트리 병합을 사용할 수 있는지 궁금합니다. 따라서,보다 구체적으로Git : 서브 트리 분기에 일련의 로컬 커밋을 병합합니다.

: 나는이 분기로 변경 B와 병합 어떻게 원격, 체크 아웃 그 가지 중 하나로서 projectB의 환매 특약을 추가하는 경우

# project structure 
root 
    projectB 
    ... 

# history 
HEAD 
C 
B 
A 

가에있는 다른 변화 뒤에두고 내 메인 repo, 그리고 마침내 projectB의 원격으로 지점을 밀어?

생각하십니까?

+1

체리 따기 가장 가능성이 당신이 http://stackoverflow.com/questions/1994463/how-to-cherry-pick-a-range-of-commits-and-merge-into 찾고있는 것입니다 -another-branch – Patrick

답변

1

서브 트리 분할은 원하는대로 수행해야합니다.

git subtree split --prefix=projectB --rejoin --branch=project-B-split 

projectB 안에있는 파일에만 영향을주는 커밋을 포함하는 project-B-split이라는 새 분기를 만듭니다. 프로젝트 B의 마스터에게 도움이 될 것입니다. 적절한 리바운드 이후에 그리고 깨끗한 복사본이없는 경우 Patrick이 의견에서 제안하는 일부 체리 피킹을 제안합니다. 이것은 원래 프로젝트 B 소스를 얻은 방법에 달려 있습니다. 구체적으로 말하자면 당신의 역사를 당신의 레포로 가져 왔습니다.

+0

+1 다음 번에 그 프로젝트를 점검 할 것입니다. 이것이 내가 원하는 것을 확인해 줄 것입니다 (매우 유망한 것 같습니다). –

관련 문제