6

Git に次のような状況があるとします。

      X---Y feature
     /
A---B---C---D edge

edgeここで、B コミットを少し ( を使用して) 変更してブランチをリベースするeditので、次のようになります。

      X---Y feature

A---E---C'---D' edge

C' と D' は C と D と同じコミットですが、E の上に適用されます (featureブランチ内の X が切断されていることに注意してください)。

今、どうすればよいですか:

  1. ブランチをリベース/マージしてfeature、そのコミットが D' の上に適用されたかのように見えるようにしますか?
  2. ブランチをリベース/マージしてfeature、そのコミットが E の上に適用されたかのように見えるようにしますが、別の「ブランチのマージ ...」コミットは行いません (C' と D' は C'' と D' に書き換えられます)。 ')?
4

1 に答える 1

6

X自体が切断されることはなく、元のBものが親として保持されています。featureその後、 の上にリベースする場合は、次のようにしますedge

git checkout feature
git rebase edge

元のバージョンと同様の構造を持つようにツリーを変更したいが、Xの子としてツリーを変更したい場合は、次のようにしEます。

git checkout feature
git rebase --onto <sha-of-E> <sha-of-B> feature
于 2011-03-18T09:21:13.103 に答える