2011-09-16 2 views
0

나는 같은 프로젝트에 대한 다른 패치를 기반으로 한 프로젝트에 추가 작업을하고있다. 저장소를 복제하여 시작했습니다 (A). 그런 다음 필자가 사용하길 원하는 패치를 "추가 기능"에 대한 "영감"으로 적용했습니다 (B). 내 변경 사항 (C)을 준비하기 위해 지점을 만든 다음 새 코드 (D)를 추가했습니다.일부 중간 추가없이 이전 버전에서 diff를 실행하는 방법은 무엇입니까?

A-----B 
     \ 
     \ 
     C-----D 

필자의 새로운 추가 기능을 "영감"패치와 구분하고 싶습니다. "inspiration"패치 (B 또는 C)를 포함하지 않는 패치 파일 (예 : git diff)을 생성하려면 어떻게해야합니까? 패치는 기본적으로 고유 한 유스 케이스가있는 플러그인을 나타내므로 각 프로젝트를 롤백하는 프로세스가 달라집니다. DB 또는 C에 의존하지 않는

답변

2

C 대신 A을 기반으로 변경 사항을 리베이스해야합니다.

git rebase --onto A C 
+0

rebase에 --onto 옵션을 아직 사용하지 않았습니다. 설명서가 약간 혼란 스러웠습니다. 이 방법으로 생각하면 도움이 될 것입니다. –

1

경우, 당신은 단지 C에서 패치를 생성 할 수 있어야한다 ->D하고 정확하게 당신이 원하는 것을 얻을 :

git format-patch C..D 
+0

패치는 나는 신선한에 "자식 적용"할 때 거의 내가 플러그인과 상황에 맞는 라인을 정의하는 배열에 추가 한 파일을 제외하고, 작동이 방법은 최대 일치하지 않습니다 생성 A. –

+1

복제 이렇게 충돌을 수정하고 패치를 다시 생성하십시오! –

관련 문제