2012-06-27 3 views
1

지점을 변경 한 후 커밋 :병합 내가 처음에 두 가지를 했어

master A---B---C-------F---H---I 
       \ 
fork    D---E 

그리고 나는 주인에게 포크를 리베이스 수 있도록하고 싶습니다, 그래서됩니다 : ABO 확실하지

master A---B---C-------F---H---I 
           \ 
fork        D---E 

을 (유창한 글자이거나 D '와 E'가되어서 낡은 것을 유지해야 하는가 C)

그래서 나는 "I"에서 포크를 나눈 다음 하드 리셋했지만 더욱 복잡하게되었다 :

master A---B---C 
       \ 
fork    D---E 
         \ 
to-merge    F---H---I 

(지금이 시점에있어)

, 그것은 작동하도록 분기에 멍청한 놈을 도와주세요. 심지어 나는 이런 식으로 끝날 것입니다 :

master A---B---C-------F---H---I 
       \ /  \ 
fork    D---E   D'--E' 

저는 D와 E를 마스터와 전혀 병합하고 싶지 않습니다.

+0

최종 목표는 선형화입니다. 단지'git rebase -i'를 사용하고 필요한 것을 재정렬하는 것이 어떻습니까? –

+0

@ J-16SDiZ 포크 지점에서'git rebase -i e8a3e6d8be9afd3aa2cc47232ee5cf6dc7080ce7'을 시도했지만 그 파일을 여러 개 열었습니다 (내 경로에 공백이 있음). 그것을 작동시키는 방법이 있습니까? – avioli

+0

@ J-16SDiZ ok. 공백없이 로컬 저장소를 경로로 이동했습니다. 내가 볼 수있는 한 내가 선택할 수 있고 스쿼시가 있습니다 ... 후자는 커밋을 다른 것에 융합시킵니다. 커밋을 다른 지점으로 이동하는 방법을 이해할 수 없었습니다. – avioli

답변

1

3 커밋 일 경우, 마스터 분기로 체리를 선택하는 것이 가장 간단 할 수 있습니다.

git checkout master 
git cherry-pick F 
git cherry-pick H 
git cherry-pick I 
+0

감사. 나는 블루 베리가 제안한 것을했는데, 나는 당신이 제안한대로 그들 모두를 고를 필요가 있음을 발견했다. – avioli

0

체리 따기를보고 싶을 것 같아요.

그냥 빠른 Google이 가져 왔습니다. 유용하게 보입니다 (그리고 당신이 필요로하는 것과 같습니다). http://technosophos.com/content/git-cherry-picking-move-small-code-patches-across-branches

첫 번째 체크 아웃 마스터.

$ git checkout master 

다음은 각 체리 선택에 대해 이와 같습니다.

$ git cherry-pick F 
Finished one cherry-pick. 
+0

감사합니다. 이것은 트릭을 만들었지 만, 모든 것을 골라야한다는 것이 었습니다. 단지 F.가 아니 었습니다. – avioli

+0

걱정하지 마세요 @avioli. 네, 그게 당신이해야 할 일이 될거야 (그래서 내가 각 체리 선택에 대해 언급 한 것입니다.), 나는 그것이 어떻게 행해지는지를 시연 중이었습니다. :) – Blueberry