はい。ブランチ(working
など)にいて、別のブランチ(master
など)からの変更をマージする場合、working
ブランチでコマンドgit-merge master
を実行すると、変更は履歴のリベースなしでマージされますまったく。 git-rebase master
を実行すると、master
の変更がリベースされ、working
ブランチの先頭に配置されます。しかし、master
からの変更をマージしたいが、working
の変更をリベースしてトップにしたい場合はどうすればよいですか?それ、どうやったら出来るの?できますか?
master
ブランチでgit-rebase working
を実行して、変更をmaster
ブランチの一番上に置くことができますが、それをworking
ブランチで実行できるようにしたいと思います。私が考えている最も近い方法は、master
から新しいブランチを作成し、その上でworking
の変更をリベースすることですが、working
ブランチを変更する代わりに新しいブランチを作成します。
rebase
が逆方向に行うことを手に入れました。 git rebase master
はあなたが求めていることをします—現在のブランチでの変更を(マスターからの相違のため)取り、master
の上でそれらをリプレイし、そして現在のブランチのヘッドをその新しい履歴のヘッドに設定します。 It does n't現在のブランチの上のmaster
からの変更をリプレイします。
別の見方をすると、git rebase master
を次のように考えることができます。
現在のブランチをリベースの上に
master
ここで、「master
」はupstreamブランチであり、リベース中に ours
とtheirs
が逆になる の理由を説明しています。