2016-10-21 18 views
1

ブランチ間で共有退治:Gitリポジトリ:材料は、私はこのように少し見えるのgitレポジトリを持って

C0 ---- C1 ---- ... ---- C12 ---- C14 (dev) 
          \ 
          \---- C13 (abandoned) 

「DEV」はメインの開発ブランチで、「捨てられた私たちはしたいことが実験であります将来のある時点で再訪する。その後、C1'をチェックアウト、私は

C0 ---- C1' ---- C14' (dev) 

を取得するために、DEV上のインタラクティブなリベースを使用することができ

C0 ---- C1' ---- C14' (dev) 
     \ 
      \---- C13' (abandoned) 

: 私はこのような何かを得るために、ダウンシングルに... C12C1スカッシュコミットしたいと思いますチェリーピックC13C13'としてください。しかし、これを行うもっと簡単な方法があります。また、より多くのブランチと発散したコミット(ただし、いくつかの共有履歴が押しつぶされる)を伴うより複雑なダイアグラムを手動で処理する必要はありません。

答えて

2

あなたは正しい道を歩いています。まず、C13を無視して、インタラクティブなリベースを使ってC0 - C1' - C14'にスクラッシュしてください。しかし、チェリーピックはしないでください。C13C1'にリベースしてください。 gitは、これが基本的にノーオペレーションであることを検出し、完了します。 So:

git rebase --onto C1_new C12 C13 
+0

これは、もっと複雑なケースでは美しく機能しました。ありがとうございました。 – Mohan

関連する問題